blob: c302bacdb6a284675c2b2688483493c25cc93ffc (
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: $DIR
## Build the libkookie tree
function build {
NIXPKGS_ALLOW_UNFREE=1 \
nix build -f '<nixpkgs/nixos>' system \
-I nixos-config="$ROOT" \
-I "nixpkgs=$DIR/nixpkgs" \
-I "nixpkgs-overlays=$DIR/overlays" \
-I "home-manager=$DIR/home-manager" \
--out-link "$OUT" $ARGV
}
## Build and output build path for debugging
function debug {
build $ROOT
echo "Build path: $D-18"
exit 0
}
## Build and switch to the new configuration (requires root)
function switch {
build $ROOT
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*
|