diff --git a/src/__pycache__/cp_default.cpython-310.pyc b/src/__pycache__/cp_default.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b64518dc916e39cfae129e9d9bcc5c1532b02d58 Binary files /dev/null and b/src/__pycache__/cp_default.cpython-310.pyc differ diff --git a/src/__pycache__/cp_info.cpython-310.pyc b/src/__pycache__/cp_info.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a7c83265076c6c5e939e39b44210465cbb38159a Binary files /dev/null and b/src/__pycache__/cp_info.cpython-310.pyc differ diff --git a/src/__pycache__/cp_install.cpython-310.pyc b/src/__pycache__/cp_install.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5522a84ad9e4559015d049cfa5b53e782df78c73 Binary files /dev/null and b/src/__pycache__/cp_install.cpython-310.pyc differ diff --git a/src/__pycache__/cp_remove.cpython-310.pyc b/src/__pycache__/cp_remove.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..78f5437eee4197328b2632b34d8dad590859b3de Binary files /dev/null and b/src/__pycache__/cp_remove.cpython-310.pyc differ diff --git a/src/cp_default.py b/src/cp_default.py index 60cf7c99c6f61175aa83ea88596b234f8efcdfac..3b44d0eb8e066d5bae832fc0da90728600027ad6 100755 --- a/src/cp_default.py +++ b/src/cp_default.py @@ -36,13 +36,22 @@ except: PORTDIR = "./ports/" LOG = "./cport.log" -def dialog(): - run = input("Continue? (y/n)") - - if run == "y" or run == "Y": - return 0 +def dialog(p_exit=False, default_no=False): + print("\n> Continue?", end=" ") + if default_no: + print("(y/N)", end=" ") else: - return 1 + print("(Y/n)", end=" ") + + run = input() + + if run == "n" or run == "N": + if p_exit: + print("Aborted!") + exit(1) + else: + print("Aborted!") + return 1 class log(object): """Log functions""" diff --git a/src/cp_info.py b/src/cp_info.py index 916d166691b840385fda858911e035db69431a93..a1561ebad23a39eec7d89dba367b2b2763fa7a75 100644 --- a/src/cp_info.py +++ b/src/cp_info.py @@ -29,7 +29,7 @@ import cp_default as cdf base_info = [ "name", "version", "description", - "priority", "maintainer", "deps" + "priority", "maintainer" ] deps_info = [ @@ -64,11 +64,32 @@ class get(object): f.close() return prm + def param_dep(config, conf_param): + if not os.path.isfile(config): + cdf.log.error_msg(f"File '{config}': not found!") + exit(1) + + try: + f = open(config) + data = json.load(f) + except KeyError: + cdf.log.error_msg(f"File '{config}: file is not config!") + exit(1) + + try: + prm = data['deps'][conf_param] + except: + prm = "not found" + + f.close() + return prm + class info(object): def depends(configs: list): for config in configs: for param in deps_info: - print(f"{param}: {get.param(config, param)}") + print(f"{param}: {get.param_dep(config, param)}") + return 0 def files(configs: list): for config in configs: diff --git a/src/cp_install.py b/src/cp_install.py index 3e732ee8e55d96985805d352c73c99f898c1b450..da10803e9d011dfb7665239b9d4b45fd418536d7 100755 --- a/src/cp_install.py +++ b/src/cp_install.py @@ -44,10 +44,13 @@ class install(object): cdf.log.msg(f"Starting building a port '{port}'...", prev="\n") if cdf.check.install(port_dir) and install.print_info(port_config): + cdf.dialog(p_exit=True) + cdf.log.log_msg( f"Starting building port {port} using the '{flags}' flags..." ) install.build(port_install, flags) + else: cdf.log.error_msg(f"Some errors while testing port files!") exit(1) diff --git a/src/cp_remove.py b/src/cp_remove.py index 350f69d49d01fcaab24ddf22dc4027cfabec2e7b..84f70f50d01120f039f333c3d123cdba0e753295 100755 --- a/src/cp_remove.py +++ b/src/cp_remove.py @@ -28,6 +28,7 @@ import sys import json import time import subprocess +import cp_info as cpI import cp_default as cdf PORTDIR = cdf.PORTDIR @@ -38,14 +39,22 @@ class remove(object): self.port = port port_dir = PORTDIR + port + port_config = [port_dir+"/config.json"] port_remove = port_dir + "/remove" + cdf.log.msg(f"Start removing a port '{port}'...", prev="\n") + if cdf.check.remove(port_dir): + print(f"Port '{port}' dependencies:\n") + cpI.info.depends(port_config) + cdf.dialog(p_exit=True) + remove.remove_pkg(port_remove) else: exit(1) def remove_pkg(port_remove): + cdf.log.msg("Executing a remove script...", prev="\n") run = subprocess.run(port_remove, shell=True) if run.returncode != 0: diff --git a/src/cport.log b/src/cport.log deleted file mode 100644 index ec6c5038d06c7e2e323b0e5b629535ee08dfdd99..0000000000000000000000000000000000000000 --- a/src/cport.log +++ /dev/null @@ -1,7 +0,0 @@ -[ Fri Dec 31 01:20:36 2021 ] - Starting building port vim using the 'default' flags... -[ Fri Dec 31 01:21:14 2021 ] - Starting building port vim using the 'default' flags... -[ Fri Dec 31 01:21:14 2021 ] - Build complete! -[ Fri Dec 31 01:21:38 2021 ] - Remove complete! -[ Fri Dec 31 01:37:31 2021 ] - Remove complete! -[ Fri Dec 31 01:37:35 2021 ] - Starting building port vim using the 'default' flags... -[ Fri Dec 31 01:37:35 2021 ] - Build complete! diff --git a/src/main.py b/src/main.py index 89c532e69ae1770be513f5c860b2434558fe9a83..be827f775e2c43a238db1b215f39401bd7bdac89 100755 --- a/src/main.py +++ b/src/main.py @@ -78,6 +78,10 @@ if args.install: except KeyboardInterrupt: cdf.log.error_msg("Keyboarg Interrupt!") exit(1) + + except SystemExit: + print("\n\nAn incorrigible error occurred during the build!") + exit(1) except: cdf.log.error_msg(f"Install port '{args.install}': Uknown error!") @@ -96,6 +100,10 @@ elif args.remove: cdf.log.error_msg("Keyboard Interrupt!") exit(1) + except SystemExit: + print("\n\nAn incorrigible error occurred during the build!") + exit(1) + except: cdf.log.error_msg(f"Remove port '{args.remove}': Uknown error!") exit(1)