diff --git a/home_backup/__main__.py b/home_backup/__main__.py index 63c5578..377b104 100644 --- a/home_backup/__main__.py +++ b/home_backup/__main__.py @@ -10,42 +10,35 @@ del rpc def main(args): # Parser parser = argparse.ArgumentParser("home-backup", description="Manage backup tools") - parser.add_argument("--sys-server", dest="sys_server", action="store_const", const=True, default=False, help="Run system service (root required).") - parser.add_argument("--user-server", dest="user_server", action="store_const", const=True, default=False, help="Run user service.") + sub_parser = parser.add_subparsers(dest="action") + parser_remote_add = sub_parser.add_parser("remote-add", help="Add remote for backups.") + parser_remote_list = sub_parser.add_parser("remote-list", help="List remotes.") + parser_remote_delete = sub_parser.add_parser("remote-delete", help="Delete remote.") + + parser_system_server = sub_parser.add_parser("system-server", help="Run system service (root required).") + parser_user_server = sub_parser.add_parser("user-server", help="Run user service.") # Arguments - if not args: - args = ["--help"] result = parser.parse_args(args) - def check_client_args_exists(): - return False - # Deamon mode - if not isinstance(result.sys_server, bool): - raise RuntimeError("Arg parser has the wrong type.") - if not isinstance(result.user_server, bool): - raise RuntimeError("Arg parser has the wrong type.") - if result.sys_server and result.user_server: - raise ValueError("System and user service can't be set simultan.") - if result.sys_server: + if result.action == "system-server": # Checks - if check_client_args_exists(): - raise RuntimeError("Client settings are setting in system service mode.") if os.getuid() != 0: # Check root raise RuntimeError("System service has to run as root.") # Run deamon asyncio.run(sys_service.rpc.run_deamon()) # TODO: Change default path - elif result.user_server: - # Checks - if check_client_args_exists(): - raise RuntimeError("Client settings are setting in system service mode.") - - # Run deamon + elif result.action == "user-server": asyncio.run(user_service.rpc.run_deamon()) # TODO: Change default path of user and system socket + + # Client actions + + # Not found action + elif result.action is None: + parser.parse_args(["--help"]) else: - raise NotImplementedError() + raise NotImplementedError("Action %s isn't implemented." % result.action) if __name__ == "__main__":