diff --git a/cli.py b/cli.py new file mode 100644 index 0000000..bf88711 --- /dev/null +++ b/cli.py @@ -0,0 +1,43 @@ +import argparse +from services.odoo.service import OdooServiceManager + + +def service(args): + service = OdooServiceManager() + match args.action: + case "start": + service.start_service(args.service) + case "stop": + service.stop_service(args.service) + case "restart": + service.restart_service(args.service) + case _: + print("Invalid action") + + +def setup_cli(): + parser = argparse.ArgumentParser(description="Service Manager CLI") + parser.add_argument( + "-v", "--verbose", action="store_true", help="Enable verbose mode" + ) + + subparsers = parser.add_subparsers( + dest="command", required=True, help="Available commands" + ) + + start_parser = subparsers.add_parser("service", help="Start a service") + start_parser.add_argument("action", type=str, help="start/stop/restart") + start_parser.add_argument("service", type=str, help="Name of the service") + start_parser.set_defaults(func=service) + + return parser + + +def main(): + parser = setup_cli() + args = parser.parse_args() + args.func(args) + + +if __name__ == "__main__": + main() diff --git a/main.py b/main.py index 09b416b..2e8782b 100644 --- a/main.py +++ b/main.py @@ -1,21 +1,4 @@ -#!/usr/bin/env python3 -import sys -import os -import argparse -from services.odoo.service import OdooServiceManager - - -def main(): - parser = argparse.ArgumentParser( - description="Restart Odoo Service", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - parser.add_argument("instance", help="Instance name") - args = parser.parse_args() - service = OdooServiceManager(config_path="utility/config/settings.yaml") - service.restart_service(args.instance) - sys.exit(0) - +import cli if __name__ == "__main__": - main() + cli.main() \ No newline at end of file diff --git a/services/odoo/service.py b/services/odoo/service.py index 9583433..f10a270 100644 --- a/services/odoo/service.py +++ b/services/odoo/service.py @@ -71,3 +71,7 @@ class OdooServiceManager: def restart_service(self, instance_name=None): """Restart the Odoo service based on the instance type""" self.manage_service("restart", instance_name) + + def start_service(self, instance_name=None): + """Start the Odoo service based on the instance type""" + self.manage_service("start", instance_name)