-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
{ pkgs, installShellFiles, lib, buildGoModule, specialisations ? null }:
buildGoModule rec {
name = "specialise";
src = ./.;
nativeBuildInputs = [ installShellFiles ];
vendorHash = null;
ldflags = [
"-X main.homeManagerPath=${pkgs.home-manager}/bin/home-manager"
];
postInstall = ''
installShellCompletion --zsh --cmd ${name} <(cat << "EOF"
#compdef _${name} ${name}
function _${name} {
local line
_arguments -C \
"--help[Output usage text to stdout]" \
"--verbose[Enable verbose logging]" \
"1: :(set unset clean)" \
"*::arg:->args"
case $line[1] in
set)
_${name}_set
;;
esac
}
function _${name}_set {
_arguments "1: :(${if specialisations == null then "" else
lib.strings.concatStringsSep " " specialisations
})"
}
EOF)
'';
}