Files
nix/hosts/common/configs/system/nix-install/install.completion.zsh
Nikolaos Karaolidis 1e6d515526 Add lanzaboote
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-08-09 18:00:43 +02:00

30 lines
875 B
Bash

_nix-install_completion() {
local options=(
'1:flake:_directories'
'-m[Mode: 'install' or 'repair']:mode:(install repair)'
'-h[Host to configure]:host:($(_list_hosts))'
'-k[Key file to copy to user config]:key:($(_list_keys))'
'-s[Enroll secure boot keys on current device]'
'-c[Copy configuration to target]'
'-r[Reboot after completion]'
)
_list_hosts() {
local flake="$(realpath ${words[2]})"
if [[ -f "$flake/flake.nix" ]]; then
nix flake show --quiet --json "$flake" 2>/dev/null | jq -r '.nixosConfigurations | keys[]'
fi
}
_list_keys() {
local flake="$(realpath ${words[2]})"
if [[ -d "$flake/secrets" ]]; then
find "$flake/secrets" -type f -name 'key.txt' | sed -E 's|^.*/secrets/([^/]+)/key.txt$|\1|' | sort -u
fi
}
_arguments -s $options
}
compdef _nix-install_completion nix-install