diff options
Diffstat (limited to 'infra/libkookie/build')
-rwxr-xr-x[-rw-r--r--] | infra/libkookie/build | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/infra/libkookie/build b/infra/libkookie/build index e69de29bb2d1..e79ae239967a 100644..100755 --- a/infra/libkookie/build +++ b/infra/libkookie/build @@ -0,0 +1,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"* |