From 4de6e2a59ed279cbc6f0cdc749b14b20510fc8c3 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 22 May 2023 17:18:20 +0300 Subject: [PATCH] Updated for sub menu --- man/slpkg.1 | 2 +- slpkg/cleanings.py | 5 +- slpkg/main.py | 211 ++++++++++++++++++----------------- slpkg/views/help_commands.py | 4 + slpkg/views/views.py | 4 +- 5 files changed, 121 insertions(+), 105 deletions(-) diff --git a/man/slpkg.1 b/man/slpkg.1 index 36e54198..cdfb06db 100644 --- a/man/slpkg.1 +++ b/man/slpkg.1 @@ -113,7 +113,7 @@ Tracking the packages dependencies. .P .B -y, --yes .RS -Answer Yes to all questions. (to be used with: -u, update, -U, upgrade, -L, clean-logs, -b, build, +Answer Yes to all questions. (to be used with: -u, update, -U, upgrade, -b, build, -i, install, -R, remove, -d, download,) .RE .P diff --git a/slpkg/cleanings.py b/slpkg/cleanings.py index a376f6be..2ecf5bfe 100644 --- a/slpkg/cleanings.py +++ b/slpkg/cleanings.py @@ -17,12 +17,11 @@ from slpkg.models.models import (Base, engine, LogsDependencies, class Cleanings(Configs): """ Cleans the logs from packages. """ - def __init__(self, flags: list): + def __init__(self): super(Configs, self).__init__() - self.flags: list = flags self.session = Session - self.view = ViewMessage(flags) + self.view = ViewMessage() self.repos = Repositories() self.utils = Utilities() diff --git a/slpkg/main.py b/slpkg/main.py index da76f633..f8795006 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -34,7 +34,7 @@ from slpkg.remove_packages import RemovePackages from slpkg.update_repository import UpdateRepository -class Argparse(Configs): +class Menu(Configs): def __init__(self, args: list): super(Configs).__init__() @@ -45,7 +45,6 @@ class Argparse(Configs): self.dialogbox = DialogBox() self.utils = Utilities() self.usage = Usage() - self.form_configs = FormConfigs() self.repos = Repositories() self.repository: str = self.repos.default_repository @@ -163,14 +162,8 @@ class Argparse(Configs): self.flag_short_repository ], 'configs': [], - 'clean-logs': [ - self.flag_yes, - self.flag_short_yes - ], - 'clean-data': [ - self.flag_yes, - self.flag_short_yes - ], + 'clean-logs': [], + 'clean-data': [], 'clean-tmp': [], 'build': [ self.flag_yes, @@ -525,18 +518,6 @@ class Argparse(Configs): return packages - def help(self) -> None: - if len(self.args) == 1: - self.usage.help(0) - self.usage.help_short(1) - - def version(self) -> None: - if len(self.args) == 1: - version = Version() - version.view() - raise SystemExit() - self.usage.help_short(1) - def update(self) -> None: if len(self.args) == 1: update = UpdateRepository(self.flags, self.repository) @@ -545,7 +526,7 @@ class Argparse(Configs): self.usage.help_short(1) def upgrade(self) -> None: - command: str = Argparse.upgrade.__name__ + command: str = Menu.upgrade.__name__ if len(self.args) == 1: self.load_database() @@ -587,35 +568,8 @@ class Argparse(Configs): raise SystemExit() self.usage.help_short(1) - def edit_configs(self) -> None: - if len(self.args) == 1: - self.form_configs.edit() - raise SystemExit() - self.usage.help_short(1) - - def clean_logs(self) -> None: - if len(self.args) == 1: - clean = Cleanings(self.flags) - clean.logs_dependencies() - raise SystemExit() - self.usage.help_short(1) - - def clean_tmp(self) -> None: - if len(self.args) == 1: - clean = Cleanings(self.flags) - clean.tmp() - raise SystemExit() - self.usage.help_short(1) - - def clean_data(self) -> None: - if len(self.args) == 1: - clean = Cleanings(self.flags) - clean.db_tables() - raise SystemExit() - self.usage.help_short(1) - def build(self) -> None: - command: str = Argparse.build.__name__ + command: str = Menu.build.__name__ if len(self.args) >= 2: self.load_database() @@ -643,7 +597,7 @@ class Argparse(Configs): self.usage.help_short(1) def install(self) -> None: - command: str = Argparse.install.__name__ + command: str = Menu.install.__name__ if len(self.args) >= 2: self.load_database() @@ -669,7 +623,7 @@ class Argparse(Configs): self.usage.help_short(1) def download(self) -> None: - command: str = Argparse.download.__name__ + command: str = Menu.download.__name__ if len(self.args) >= 2: self.load_database() @@ -689,7 +643,7 @@ class Argparse(Configs): self.usage.help_short(1) def remove(self) -> None: - command: str = Argparse.remove.__name__ + command: str = Menu.remove.__name__ if len(self.args) >= 2: packages: list = self.is_file_list_packages() @@ -705,7 +659,7 @@ class Argparse(Configs): self.usage.help_short(1) def find(self) -> None: - command: str = Argparse.find.__name__ + command: str = Menu.find.__name__ if len(self.args) >= 2: self.load_database() @@ -724,7 +678,7 @@ class Argparse(Configs): self.usage.help_short(1) def view(self) -> None: - command: str = Argparse.view.__name__ + command: str = Menu.view.__name__ if len(self.args) >= 2: self.load_database() @@ -749,7 +703,7 @@ class Argparse(Configs): self.usage.help_short(1) def search(self) -> None: - command: str = Argparse.search.__name__ + command: str = Menu.search.__name__ if len(self.args) >= 2: self.load_database() @@ -768,7 +722,7 @@ class Argparse(Configs): self.usage.help_short(1) def dependees(self) -> None: - command: str = Argparse.dependees.__name__ + command: str = Menu.dependees.__name__ if len(self.args) >= 2: self.load_database() @@ -789,7 +743,7 @@ class Argparse(Configs): self.usage.help_short(1) def tracking(self) -> None: - command: str = Argparse.tracking.__name__ + command: str = Menu.tracking.__name__ if len(self.args) >= 2: self.load_database() @@ -824,53 +778,110 @@ class Argparse(Configs): self.usage.help_short(1) +class SubMenu: + """ Sub menu that separate from the main menu because of + have no options to manage here. """ + + def __init__(self, args: list): + self.args: list = args + self.usage = Usage() + self.form_configs = FormConfigs() + self.clean = Cleanings() + + def help(self) -> None: + if len(self.args) == 1: + self.usage.help(0) + self.usage.help_short(1) + + def version(self) -> None: + if len(self.args) == 1: + version = Version() + version.view() + raise SystemExit() + self.usage.help_short(1) + + def edit_configs(self) -> None: + if len(self.args) == 1: + self.form_configs.edit() + raise SystemExit() + self.usage.help_short(1) + + def clean_logs(self) -> None: + if len(self.args) == 1: + self.clean.logs_dependencies() + raise SystemExit() + self.usage.help_short(1) + + def clean_tmp(self) -> None: + if len(self.args) == 1: + self.clean.tmp() + raise SystemExit() + self.usage.help_short(1) + + def clean_data(self) -> None: + if len(self.args) == 1: + self.clean.db_tables() + raise SystemExit() + self.usage.help_short(1) + + def main() -> None: args: list = sys.argv args.pop(0) - usage = Usage() - argparse = Argparse(args) + sub_menu = SubMenu(args) + arguments_no_options: dict[str] = { + '-h': sub_menu.help, + '--help': sub_menu.help, + '-v': sub_menu.version, + '--version': sub_menu.version, + 'configs': sub_menu.edit_configs, + '-g': sub_menu.edit_configs, + 'clean-logs': sub_menu.clean_logs, + '-L': sub_menu.clean_logs, + 'clean-data': sub_menu.clean_data, + '-T': sub_menu.clean_data, + 'clean-tmp': sub_menu.clean_tmp, + '-D': sub_menu.clean_tmp + } + + try: + arguments_no_options[args[0]]() + except (KeyError, IndexError): + pass + except KeyboardInterrupt: + raise SystemExit(1) + + menu = Menu(args) arguments: dict[str] = { - '-h': argparse.help, - '--help': argparse.help, - '-v': argparse.version, - '--version': argparse.version, - 'help': argparse.help_for_commands, - 'update': argparse.update, - '-u': argparse.update, - 'upgrade': argparse.upgrade, - '-U': argparse.upgrade, - 'check-updates': argparse.check_updates, - '-c': argparse.check_updates, - 'repo-info': argparse.repo_info, - '-I': argparse.repo_info, - 'configs': argparse.edit_configs, - '-g': argparse.edit_configs, - 'clean-logs': argparse.clean_logs, - '-L': argparse.clean_logs, - 'clean-data': argparse.clean_data, - '-T': argparse.clean_data, - 'clean-tmp': argparse.clean_tmp, - '-D': argparse.clean_tmp, - 'build': argparse.build, - '-b': argparse.build, - 'install': argparse.install, - '-i': argparse.install, - 'download': argparse.download, - '-d': argparse.download, - 'remove': argparse.remove, - '-R': argparse.remove, - 'view': argparse.view, - '-w': argparse.view, - 'find': argparse.find, - '-f': argparse.find, - 'search': argparse.search, - '-s': argparse.search, - 'dependees': argparse.dependees, - '-e': argparse.dependees, - 'tracking': argparse.tracking, - '-t': argparse.tracking + 'help': menu.help_for_commands, + 'update': menu.update, + '-u': menu.update, + 'upgrade': menu.upgrade, + '-U': menu.upgrade, + 'check-updates': menu.check_updates, + '-c': menu.check_updates, + 'repo-info': menu.repo_info, + '-I': menu.repo_info, + 'build': menu.build, + '-b': menu.build, + 'install': menu.install, + '-i': menu.install, + 'download': menu.download, + '-d': menu.download, + 'remove': menu.remove, + '-R': menu.remove, + 'view': menu.view, + '-w': menu.view, + 'find': menu.find, + '-f': menu.find, + 'search': menu.search, + '-s': menu.search, + 'dependees': menu.dependees, + '-e': menu.dependees, + 'tracking': menu.tracking, + '-t': menu.tracking } try: diff --git a/slpkg/views/help_commands.py b/slpkg/views/help_commands.py index 2bf0c1ec..a7a529ed 100644 --- a/slpkg/views/help_commands.py +++ b/slpkg/views/help_commands.py @@ -15,6 +15,10 @@ class Help(Configs): self.flags.reverse() # Put first the short options. help_commands: dict = { + '-h': "Show this message and exit.", + '--help': "Show this message and exit.", + '-v': "Print version and exit.", + '--version': "Print version and exit.", 'update': "Updates the package list and the database.", 'upgrade': "Upgrade all the installed packages if the newer version exists in the repository.", 'check-updates': "Check if there is any news on the repositories ChangeLog.txt file.", diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 4fb9275f..5ba066e6 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -14,8 +14,10 @@ from slpkg.views.asciibox import AsciiBox class ViewMessage(Configs): - def __init__(self, flags: list, repository=None, data=None): + def __init__(self, flags=None, repository=None, data=None): super(Configs, self).__init__() + if flags is None: + flags: list = [] self.flags: list = flags self.repository = repository self.data: dict = data