about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rwxr-xr-xbuild.sh29
2 files changed, 31 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 28ba539c..e75b469a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
 .direnv
 .ccls-cache
+
 /result
+/result-*
diff --git a/build.sh b/build.sh
new file mode 100755
index 00000000..357acf58
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env sh
+
+host="${1-tiamat}"
+root="$(git rev-parse --show-toplevel)"
+
+SYSTEM_OUT="$root/result-system"
+HOME_OUT="$root/result-home-soispha"
+
+check() {
+    file="$1"
+    if [ -s "$file" ]; then
+        rm "$file"
+    elif ! [ -e "$file" ]; then
+        : "Ignore not existing files"
+    else
+        echo "ERROR: '$file' is not a symlink. Not removing it." 1>&2
+        exit 1
+    fi
+}
+
+system="$(nix build ".#nixosConfigurations.$host.config.system.build.toplevel" --print-out-paths --no-link)"
+check "$SYSTEM_OUT"
+ln --symbolic "$system" "$SYSTEM_OUT"
+
+home="$(grep ExecStart= "$SYSTEM_OUT/etc/systemd/system/home-manager-soispha.service" | awk '{print $2}')"
+check "$HOME_OUT"
+ln --symbolic "$home" "$HOME_OUT"
+
+# vim: ft=sh