clan-vm-manager: Fixed vm-manager start
This commit is contained in:
@@ -1,37 +1,39 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import sys
|
|
||||||
|
|
||||||
import gi
|
|
||||||
|
|
||||||
from .app import Application
|
from .app import Application
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
|
||||||
|
|
||||||
|
|
||||||
def join_command(args: argparse.Namespace) -> None:
|
def join_command(args: argparse.Namespace) -> None:
|
||||||
print("Joining the flake")
|
print("Joining the flake")
|
||||||
print(args.clan_uri)
|
print(args.clan_uri)
|
||||||
|
app = Application()
|
||||||
|
return app.run()
|
||||||
|
|
||||||
def register_join_parser(parser: argparse.ArgumentParser) -> None:
|
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)
|
parser.set_defaults(func=join_command)
|
||||||
|
|
||||||
|
|
||||||
def start_app(args: argparse.Namespace) -> None:
|
def start_app(args: argparse.Namespace) -> None:
|
||||||
app = Application(args)
|
app = Application()
|
||||||
return app.run(sys.argv)
|
return app.run()
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
parser = argparse.ArgumentParser(description="clan-vm-manager")
|
parser = argparse.ArgumentParser(description="clan-vm-manager")
|
||||||
|
|
||||||
|
# Add join subcommand
|
||||||
subparser = parser.add_subparsers(
|
subparser = parser.add_subparsers(
|
||||||
title="command",
|
title="command",
|
||||||
description="command to execute",
|
description="command to execute",
|
||||||
help="the command to execute",
|
help="the command to execute",
|
||||||
required=True,
|
|
||||||
)
|
)
|
||||||
register_join_parser(subparser.add_parser("join", help="join a clan"))
|
register_join_parser(subparser.add_parser("join", help="join a clan"))
|
||||||
|
|
||||||
|
# Executed when no command is given
|
||||||
parser.set_defaults(func=start_app)
|
parser.set_defaults(func=start_app)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
args.func(args)
|
args.func(args)
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||||||
|
|
||||||
|
|
||||||
class Application(Gtk.Application):
|
class Application(Gtk.Application):
|
||||||
def __init__(self, args: argparse.Namespace) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__(
|
super().__init__(
|
||||||
application_id=constants["APPID"], flags=Gio.ApplicationFlags.FLAGS_NONE
|
application_id=constants["APPID"], flags=Gio.ApplicationFlags.FLAGS_NONE
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -60,13 +60,15 @@ class VMBase:
|
|||||||
|
|
||||||
def run(self) -> None:
|
def run(self) -> None:
|
||||||
print(f"Running VM {self.name}")
|
print(f"Running VM {self.name}")
|
||||||
|
from clan_cli import vms
|
||||||
|
import asyncio
|
||||||
# raise Exception("Cannot run VMs yet")
|
# raise Exception("Cannot run VMs yet")
|
||||||
# vm = asyncio.run(
|
vm = asyncio.run(
|
||||||
# vms.run.inspect_vm(flake_url=self._path, flake_attr="defaultVM")
|
vms.run.inspect_vm(flake_url=self._path, flake_attr="defaultVM")
|
||||||
# )
|
)
|
||||||
# task = vms.run.run_vm(vm)
|
task = vms.run.run_vm(vm)
|
||||||
# for line in task.log_lines():
|
for line in task.log_lines():
|
||||||
# print(line, end="")
|
print(line, end="")
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True)
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ mkShell {
|
|||||||
# prepend clan-cli for development
|
# prepend clan-cli for development
|
||||||
export PYTHONPATH=../clan-cli:$PYTHONPATH
|
export PYTHONPATH=../clan-cli:$PYTHONPATH
|
||||||
|
|
||||||
|
ln -sf ${clan-vm-manager} result
|
||||||
|
|
||||||
set -euox
|
set -euox
|
||||||
# install desktop file
|
# install desktop file
|
||||||
cp -f ${clan-vm-manager}/share/applications/clan-vm-manager.desktop ~/.local/share/applications/clan-vm-manager.desktop
|
cp -f ${clan-vm-manager}/share/applications/clan-vm-manager.desktop ~/.local/share/applications/clan-vm-manager.desktop
|
||||||
|
|||||||
Reference in New Issue
Block a user