Merge pull request 'clan: improve machine completions' (#1572) from kenji/clan-core:clan/dynamic-completions into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1572
This commit is contained in:
@@ -44,23 +44,23 @@ def complete_machines(
|
|||||||
|
|
||||||
def run_cmd() -> None:
|
def run_cmd() -> None:
|
||||||
try:
|
try:
|
||||||
# In my tests this was consistently faster than:
|
|
||||||
# nix eval .#nixosConfigurations --apply builtins.attrNames
|
|
||||||
cmd = ["nix", "flake", "show", "--system", "no-eval", "--json"]
|
|
||||||
if (clan_dir_result := clan_dir(None)) is not None:
|
if (clan_dir_result := clan_dir(None)) is not None:
|
||||||
cmd.append(clan_dir_result)
|
flake = clan_dir_result
|
||||||
result = subprocess.run(
|
else:
|
||||||
cmd,
|
flake = "."
|
||||||
check=True,
|
services_result = json.loads(
|
||||||
capture_output=True,
|
run(
|
||||||
text=True,
|
nix_eval(
|
||||||
|
flags=[
|
||||||
|
f"{flake}#nixosConfigurations",
|
||||||
|
"--apply",
|
||||||
|
"builtins.attrNames",
|
||||||
|
],
|
||||||
|
),
|
||||||
|
).stdout.strip()
|
||||||
)
|
)
|
||||||
|
|
||||||
data = json.loads(result.stdout)
|
machines.extend(services_result)
|
||||||
try:
|
|
||||||
machines.extend(data.get("nixosConfigurations").keys())
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user