blob: 227620c8519a334275738786810428780758ec23 (
plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#!/bin/sh
set -eo pipefail
HOST=$(hostname)
DIR=$(realpath "$(dirname "$0")")
OUT=$(mktemp -du)
ROOT="$DIR/roots/$HOST.nix"
echo Active tree: "$ROOT"
## Build the libkookie tree
function build {
NIXPKGS_ALLOW_UNFREE=1 \
nix build -f '<nixpkgs/nixos>' system \
-I nixos-config="$ROOT" \
-I "nixpkgs=$DIR" \
-I "nixpkgs-overlays=$DIR/overlays" \
-I "home-manager=$DIR/home-manager" \
-I "modules=$DIR/modules" \
-I "configuration=$DIR/configuration" \
--out-link "$OUT" "$@"
}
## Build and output build path for debugging
function debug {
echo "Build path: $OUT"
exec build "$@"
}
## Build and switch to the new configuration (requires root)
function switch {
build "$@"
nix-env -p /nix/var/nix/profiles/system --set "$OUT"
"$OUT"/bin/switch-to-configuration switch
}
function vmimage {
RUN="$1"; shift
NIXPKGS_ALLOW_UNFREE=1 \
nix build -f '<nixpkgs/nixos>' vm \
-I nixos-config="$ROOT" \
-I "nixpkgs=$DIR" \
-I "nixpkgs-overlays=$DIR/overlays" \
-I "home-manager=$DIR/home-manager" \
-I "modules=$DIR/modules" \
-I "configuration=$DIR/configuration" \
--argstr system x86_64-linux "$@"
if [ "$RUN" -eq "1" ]; then
echo "Running VM image..."
./result/bin/run-$HOST-vm
fi
exit 0
}
case "$1" in
-s* | --switch*) shift; switch "$@" ;;
-d* | --debug*) shift; debug "$@" ;;
-vr*) shift; vmimage "1" "$@" ;;
-v*) shift; vmimage "0" "$@" ;;
*) build "$@" ;;
esac
rm -rf "$OUT"*
|