diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-30 15:18:51 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-30 15:18:51 +0200 |
| commit | 484673d59bdd15fb10bdc366f5d8b15fee596b8e (patch) | |
| tree | e8aa7e9ea8081275790daf8eeab827852e30d509 /scripts/build.sh | |
| parent | modules: Use namespaces (diff) | |
| download | nixos-server-484673d59bdd15fb10bdc366f5d8b15fee596b8e.zip | |
scripts/{build.sh,update_host.sh}: Make smarter
Diffstat (limited to 'scripts/build.sh')
| -rwxr-xr-x | scripts/build.sh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/build.sh b/scripts/build.sh index a3ff064..df55ac5 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,5 +1,38 @@ #! /usr/bin/env sh +set -eu + +wrong_arg=false +use_dirty=false + +for arg in "$@"; do + case "$arg" in + --dirty) + use_dirty=true + ;; + *) + echo "arg '$arg' is not known." + wrong_arg=true + ;; + esac +done + +if [ "$wrong_arg" = true ]; then + exit 2 +fi + +if [ "$use_dirty" = "false" ]; then + tmp="$(mktemp -d -t "server_build_script_XXXXX")" + trap 'rm -r "$tmp"' EXIT + + git archive --format=tar.gz HEAD | { + cd "$tmp" + tar -xz + } + + cd "$tmp" +fi + for host in "server2" "server3"; do nix build ".#nixosConfigurations.$host.config.system.build.toplevel" --print-out-paths --no-link --option max-jobs 1 done |
