cli,nix: Add machine_icon, machine_description

This commit is contained in:
Qubasa
2024-02-06 19:25:34 +07:00
parent be2557152a
commit 8194b61e4b
6 changed files with 48 additions and 6 deletions

View File

@@ -7,7 +7,7 @@ from ..dirs import machine_gcroot
from ..errors import ClanError
from ..machines.list import list_machines
from ..machines.machines import Machine
from ..nix import nix_build, nix_config, nix_eval, nix_metadata
from ..nix import nix_add_to_gcroots, nix_build, nix_config, nix_eval, nix_metadata
from ..vms.inspect import VmConfig, inspect_vm
@@ -44,6 +44,14 @@ def inspect_flake(flake_url: str | Path, machine_name: str) -> FlakeConfig:
machine = Machine(machine_name, flake_url)
vm = inspect_vm(machine)
# Make symlink to gcroots from vm.machine_icon
if vm.machine_icon:
gcroot_icon: Path = (
machine_gcroot(clan_name=vm.clan_name, flake_url=str(flake_url))
/ vm.machine_name
)
nix_add_to_gcroots(vm.machine_icon, gcroot_icon)
# Get the cLAN name
cmd = nix_eval(
[

View File

@@ -53,6 +53,11 @@ def nix_build(flags: list[str], gcroot: Path | None = None) -> list[str]:
)
def nix_add_to_gcroots(nix_path: Path, dest: Path) -> None:
cmd = ["nix-store", "--realise", f"{nix_path}", "--add-root", f"{dest}"]
run(cmd)
def nix_config() -> dict[str, Any]:
cmd = nix_command(["show-config", "--json"])
proc = run(cmd)

View File

@@ -9,6 +9,8 @@ from ..machines.machines import Machine
@dataclass
class VmConfig:
machine_name: str
machine_icon: Path
machine_description: str
flake_url: str | Path
clan_name: str
@@ -20,7 +22,7 @@ class VmConfig:
def inspect_vm(machine: Machine) -> VmConfig:
data = json.loads(machine.eval_nix("config.clanCore.vm.inspect"))
return VmConfig(machine_name=machine.name, flake_url=machine.flake, **data)
return VmConfig(flake_url=machine.flake, **data)
@dataclass