aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/build.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xscripts/build.sh33
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