clan-core/pkgs/clan-vm-manager/clan_vm_manager/__init__.py

50 lines
1.3 KiB
Python
Raw Normal View History

2023-11-21 17:13:30 +00:00
import argparse
from clan_cli.clan_uri import ClanURI
from clan_vm_manager.models.interfaces import ClanConfig
from .app import MainApplication
2023-11-21 17:13:30 +00:00
2023-11-23 13:37:05 +00:00
def main() -> None:
2023-11-23 12:56:25 +00:00
parser = argparse.ArgumentParser(description="clan-vm-manager")
# Add join subcommand
2023-12-04 18:23:35 +00:00
subparser = parser.add_subparsers(
title="command",
description="command to execute",
help="the command to execute",
)
register_join_parser(subparser.add_parser("join", help="join a clan"))
2023-12-08 10:56:27 +00:00
register_overview_parser(subparser.add_parser("overview", help="overview screen"))
# Executed when no command is given
2023-12-06 17:38:19 +00:00
parser.set_defaults(func=show_overview)
2023-11-23 13:37:05 +00:00
args = parser.parse_args()
args.func(args)
def show_join(args: argparse.Namespace) -> None:
app = MainApplication(
2024-01-20 12:15:25 +00:00
config=ClanConfig(url=args.clan_uri, initial_view="list"),
)
return app.run()
def register_join_parser(parser: argparse.ArgumentParser) -> None:
parser.add_argument("clan_uri", type=ClanURI, help="clan URI to join")
parser.set_defaults(func=show_join)
def show_overview(args: argparse.Namespace) -> None:
app = MainApplication(
config=ClanConfig(url=None, initial_view="list"),
)
return app.run()
def register_overview_parser(parser: argparse.ArgumentParser) -> None:
parser.set_defaults(func=show_overview)