This commit is contained in:
KaySar12 2025-04-03 16:45:10 +07:00
parent 9001a02c59
commit 8ac2ca2ee8
3 changed files with 49 additions and 19 deletions

43
cli.py Normal file
View File

@ -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()

21
main.py
View File

@ -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()

View File

@ -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)