diff --git a/README.md b/README.md index e69de29..e41880a 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,38 @@ +# WebServicesManager + +**A script set for web services management.** + +## Usage + +- First clone the repository + ```bash + # the remote repository where located on my cloud server + git clone https://gitea.virtualguard101.com/virtualguard101/webscripts.git + cd webscripts + ``` + +- Launch the manager with `main.py` + ```bash + ./main.py + ``` + + Add `-h` as parameter to find usage: + ```bash + ./main.py -h + usage: main.py [-h] {register,list,operate} ... + + =====> Web Services Manager <===== + + positional arguments: + {register,list,operate} + register Register a new service + list List all services + operate Service operations to carry out + + options: + -h, --help show this help message and exit + ``` + +## TODO + +- [ ] Add the function that can remove services diff --git a/main.py b/main.py index c8f610c..b0ff1c1 100755 --- a/main.py +++ b/main.py @@ -7,21 +7,21 @@ from src.manager import ServiceFactory, ServiceRepository, Manager from src.services import DockerServiceStrategy, SystemServiceStrategy def main(): - parser = argparse.ArgumentParser(description="服务管理工具") + parser = argparse.ArgumentParser(description="=====> Web Services Manager <=====") subparsers = parser.add_subparsers(dest="command", required=True) # 注册服务命令 - register_parser = subparsers.add_parser("register", help="注册新服务") - register_parser.add_argument("tag", choices=["sys", "docker"], help="服务类型") - register_parser.add_argument("name", help="服务名称") - register_parser.add_argument("--path", help="Docker服务路径(仅docker类型需要)") + register_parser = subparsers.add_parser("register", help="Register a new service") + register_parser.add_argument("tag", choices=["sys", "docker"], help="Tag of the service") + register_parser.add_argument("name", help="Name of the service") + register_parser.add_argument("--path", help="Config/Data path of the service where the 'docker-compose.yml' located (docker-based services only)") # 列出服务命令 - subparsers.add_parser("list", help="列出所有服务") + subparsers.add_parser("list", help="List all services") # 执行操作命令 - operate_parser = subparsers.add_parser("operate", help="执行服务操作") - operate_parser.add_argument("index", type=int, help="服务索引") + operate_parser = subparsers.add_parser("operate", help="Service operations to carry out") + operate_parser.add_argument("index", type=int, help="Index of the service, which is a integer") args = parser.parse_args() @@ -34,7 +34,7 @@ def main(): if args.command == "register": # 创建服务 service = manager.register_service(args.tag, args.name, args.path) - print(f"服务注册成功: {service.name}") + print(f"Register a new service successfully: {service.name}") elif args.command == "list": # 列出所有服务 @@ -46,11 +46,11 @@ def main(): # 执行服务操作 try: manager.execute_service_operation(args.index) - print("操作执行成功") + print("Operation success!") except IndexError: - print("错误:无效的服务索引") + print("Error: invalid index") except Exception as e: - print(f"操作失败: {str(e)}") + print(f"Operation failed: {str(e)}") if __name__ == "__main__": main() diff --git a/pyproject.toml b/pyproject.toml index 5dcc74e..be9afc7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ version = "0.1.0" authors = [ { name="virtualguard101", email="virtualguard101@gmail.com"} ] -description = "A template for web services management." +description = "A script set for web services management." readme = "README.md" requires-python = ">=3.12" classifiers = [ @@ -18,6 +18,6 @@ dependencies = [ "colorlog==6.9.0", ] -[project.urls] -Homepage = "https://github.com/virtualguard101/WebServicesManager" -Issues = "https://github.com/virtualguard101/WebServicesManager/issues" +# [project.urls] +# Homepage = "https://github.com/virtualguard101/WebServicesManager" +# Issues = "https://github.com/virtualguard101/WebServicesManager/issues" diff --git a/src/manager.py b/src/manager.py index e29806f..f843b2b 100755 --- a/src/manager.py +++ b/src/manager.py @@ -151,6 +151,8 @@ class Manager: logger.error(f"Service registration failed: {str(e)}") raise + # TODO: Add the function that can remove services + def list_services(self) -> List[Service]: """List all registered services.