blob: 72550ebb28761e52ec1a3455f51612a085dbeae9 (
plain) (
blame)
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
|
#! /usr/bin/env bash
# IMPORTANT: Don't use nix-shell shebang!
# If a config has generated an invalid NIX_PATH, it still needs to be
# possible to rescue the system by activating a different configuration.
set -ueo pipefail
d="$(dirname $0)"
if [ "$#" -eq 0 ]; then
echo -e "\e[31;1merror:\e[0m must specify a system definition" >&2
echo "Available system definitions are:" >&2
find $d/sys -name *.nix | awk -F / '{print "- " $NF}' | sed 's/\.nix$//' >&2
exit 1
fi
sys="$1"
shift
export NIX_PATH=nixos-config=$d/sys/$sys.nix:$d
link="$(mktemp -d)/result"
nix build -f '<nixpkgs/nixos>' --out-link "$link" "$@" system
path="$(readlink "$link")"
nix-env -p /nix/var/nix/profiles/system --set "$path"
exec "$path/bin/switch-to-configuration" switch
|