blob: e79ae239967a06561cf43903766803825a72b95a (
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
|
#!/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" \
--out-link "$OUT" "$@"
}
## Build and output build path for debugging
function debug {
build
echo "Build path: $OUT"
exit 0
}
## 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
}
case "$1" in
-s* | --switch*) shift; switch ;;
-d* | --debug*) shift; debug ;;
*) build ;;
esac
rm -rf "$OUT"*
|