From af441e71d20b79855b8022c82786967f46e70cb2 Mon Sep 17 00:00:00 2001 From: Qubasa Date: Tue, 5 Dec 2023 13:41:02 +0100 Subject: [PATCH 1/2] clan-vm-manager: Fixed vm-manager start --- .../clan_vm_manager/__init__.py | 18 ++++++++++-------- pkgs/clan-vm-manager/clan_vm_manager/app.py | 2 +- pkgs/clan-vm-manager/clan_vm_manager/models.py | 14 ++++++++------ pkgs/clan-vm-manager/shell.nix | 2 ++ 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/pkgs/clan-vm-manager/clan_vm_manager/__init__.py b/pkgs/clan-vm-manager/clan_vm_manager/__init__.py index 9fb5d531b..2e1689d10 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/__init__.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/__init__.py @@ -1,37 +1,39 @@ import argparse -import sys -import gi from .app import Application -gi.require_version("Gtk", "3.0") + def join_command(args: argparse.Namespace) -> None: print("Joining the flake") print(args.clan_uri) - + app = Application() + return app.run() def register_join_parser(parser: argparse.ArgumentParser) -> None: - parser.add_argument("clan_uri", type=str, help="machine in the flake to run") + parser.add_argument("clan_uri", type=str, help="clan URI to join") parser.set_defaults(func=join_command) def start_app(args: argparse.Namespace) -> None: - app = Application(args) - return app.run(sys.argv) + app = Application() + return app.run() def main() -> None: parser = argparse.ArgumentParser(description="clan-vm-manager") + + # Add join subcommand subparser = parser.add_subparsers( title="command", description="command to execute", help="the command to execute", - required=True, ) register_join_parser(subparser.add_parser("join", help="join a clan")) + + # Executed when no command is given parser.set_defaults(func=start_app) args = parser.parse_args() args.func(args) diff --git a/pkgs/clan-vm-manager/clan_vm_manager/app.py b/pkgs/clan-vm-manager/clan_vm_manager/app.py index 2d20ee0c2..118d0e828 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/app.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/app.py @@ -91,7 +91,7 @@ class MainWindow(Gtk.ApplicationWindow): class Application(Gtk.Application): - def __init__(self, args: argparse.Namespace) -> None: + def __init__(self) -> None: super().__init__( application_id=constants["APPID"], flags=Gio.ApplicationFlags.FLAGS_NONE ) diff --git a/pkgs/clan-vm-manager/clan_vm_manager/models.py b/pkgs/clan-vm-manager/clan_vm_manager/models.py index b1d93c6f7..b46413dd3 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/models.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/models.py @@ -60,13 +60,15 @@ class VMBase: def run(self) -> None: print(f"Running VM {self.name}") + from clan_cli import vms + import asyncio # raise Exception("Cannot run VMs yet") - # vm = asyncio.run( - # vms.run.inspect_vm(flake_url=self._path, flake_attr="defaultVM") - # ) - # task = vms.run.run_vm(vm) - # for line in task.log_lines(): - # print(line, end="") + vm = asyncio.run( + vms.run.inspect_vm(flake_url=self._path, flake_attr="defaultVM") + ) + task = vms.run.run_vm(vm) + for line in task.log_lines(): + print(line, end="") @dataclass(frozen=True) diff --git a/pkgs/clan-vm-manager/shell.nix b/pkgs/clan-vm-manager/shell.nix index 1b706895c..36dccaf8d 100644 --- a/pkgs/clan-vm-manager/shell.nix +++ b/pkgs/clan-vm-manager/shell.nix @@ -13,6 +13,8 @@ mkShell { # prepend clan-cli for development export PYTHONPATH=../clan-cli:$PYTHONPATH + ln -sf ${clan-vm-manager} result + set -euox # install desktop file cp -f ${clan-vm-manager}/share/applications/clan-vm-manager.desktop ~/.local/share/applications/clan-vm-manager.desktop From fcf21093ace01a2a5bab59dedcd44533d6979690 Mon Sep 17 00:00:00 2001 From: Qubasa Date: Tue, 5 Dec 2023 13:41:41 +0100 Subject: [PATCH 2/2] nix fmt --- pkgs/clan-vm-manager/clan_vm_manager/__init__.py | 4 +--- pkgs/clan-vm-manager/clan_vm_manager/app.py | 1 - pkgs/clan-vm-manager/clan_vm_manager/models.py | 4 +++- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/clan-vm-manager/clan_vm_manager/__init__.py b/pkgs/clan-vm-manager/clan_vm_manager/__init__.py index 2e1689d10..0671c7c66 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/__init__.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/__init__.py @@ -1,17 +1,15 @@ import argparse - from .app import Application - - def join_command(args: argparse.Namespace) -> None: print("Joining the flake") print(args.clan_uri) app = Application() return app.run() + def register_join_parser(parser: argparse.ArgumentParser) -> None: parser.add_argument("clan_uri", type=str, help="clan URI to join") parser.set_defaults(func=join_command) diff --git a/pkgs/clan-vm-manager/clan_vm_manager/app.py b/pkgs/clan-vm-manager/clan_vm_manager/app.py index 118d0e828..3244e33a9 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/app.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/app.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -import argparse import sys from typing import Any diff --git a/pkgs/clan-vm-manager/clan_vm_manager/models.py b/pkgs/clan-vm-manager/clan_vm_manager/models.py index b46413dd3..6dc215199 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/models.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/models.py @@ -60,8 +60,10 @@ class VMBase: def run(self) -> None: print(f"Running VM {self.name}") - from clan_cli import vms import asyncio + + from clan_cli import vms + # raise Exception("Cannot run VMs yet") vm = asyncio.run( vms.run.inspect_vm(flake_url=self._path, flake_attr="defaultVM")