introduced src
This commit is contained in:
32
refit/src/modules/refit_logger.py
Normal file
32
refit/src/modules/refit_logger.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import logging
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
log_dir = Path.home() / ".local" / "share" / "refit"
|
||||
log_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
log_file = log_dir / "refit.log"
|
||||
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.DEBUG,
|
||||
format="%(asctime)s - %(levelname)s - %(message)s",
|
||||
filename=log_file,
|
||||
)
|
||||
logger = logging.getLogger()
|
||||
|
||||
|
||||
def handle_exception(exec_type, exec_value, exec_traceback):
|
||||
if issubclass(exec_type, KeyboardInterrupt):
|
||||
sys.__excepthook__(exec_type, exec_value, exec_traceback)
|
||||
return
|
||||
logger.error(
|
||||
"External error accured",
|
||||
exc_info=(exec_type, exec_value, exec_traceback),
|
||||
)
|
||||
|
||||
|
||||
sys.excepthook = handle_exception
|
||||
|
||||
logger.debug(f"Log path:\t{log_dir}")
|
||||
logger.debug(f"Log file:\t{log_file}")
|
||||
62
refit/src/refit.py
Normal file
62
refit/src/refit.py
Normal file
@@ -0,0 +1,62 @@
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
from modules.refit_logger import logger
|
||||
|
||||
|
||||
# Setting Global Variables
|
||||
REFIT_VERSION = "Refit Beta 0.0.0"
|
||||
|
||||
|
||||
# ---------------------------BEGIN FUNCTIONS---------------------------
|
||||
# will be in seperate file at some point
|
||||
def refit_create(args):
|
||||
logger.info("Running in create mode")
|
||||
logger.debug(f"Arguments: {args}")
|
||||
print(f"executing on {args.input}")
|
||||
|
||||
|
||||
# ----------------------------END FUNCTIONS----------------------------
|
||||
|
||||
|
||||
# ---------------------------ARGPARSE START---------------------------
|
||||
|
||||
# Main Parser
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="Refit",
|
||||
description="This is a file and directory manipulation tool.\
|
||||
it can create, move and delete files and directories as well as \
|
||||
renaming them",
|
||||
epilog=REFIT_VERSION,
|
||||
)
|
||||
|
||||
# Main Parser Arguments
|
||||
|
||||
# Create Parser
|
||||
subparser = parser.add_subparsers(
|
||||
title="Commands",
|
||||
dest="create",
|
||||
required=False,
|
||||
)
|
||||
|
||||
# Create Parser Arguments
|
||||
create_parser = subparser.add_parser(
|
||||
"create",
|
||||
help="creates a new file/folder",
|
||||
)
|
||||
create_parser.add_argument("-n", type=int, help="number of items")
|
||||
create_parser.add_argument("-i", "--input", help="input file")
|
||||
create_parser.set_defaults(func=refit_create)
|
||||
|
||||
args = parser.parse_args()
|
||||
# ---------------------------ARGPARSE END-----------------------------
|
||||
|
||||
|
||||
# Dispatcher
|
||||
if hasattr(args, "func"):
|
||||
logger.debug("In hasattr()")
|
||||
args.func(args)
|
||||
else:
|
||||
parser.print_help()
|
||||
logger.info("No input, exiting with error:1")
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user