From 5a1bc95a1a7e1f73c5fd2b1b9b9d22e5597fd822 Mon Sep 17 00:00:00 2001 From: Leyla Becker Date: Tue, 17 Sep 2024 16:13:08 -0500 Subject: [PATCH] updated rebuild.sh to support remote rebuilds --- rebuild.sh | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/rebuild.sh b/rebuild.sh index 7f2a072..c54dd1a 100755 --- a/rebuild.sh +++ b/rebuild.sh @@ -1,3 +1,41 @@ #!/usr/bin/env bash -sudo nixos-rebuild ${1:-switch} --flake .#$(hostname) \ No newline at end of file +while [ $# -gt 0 ]; do + case "$1" in + --target*|-t*) + if [[ "$1" != *=* ]]; then shift; fi # Value is next arg if no `=` + target="${1#*=}" + ;; + --flake*|-h*) + if [[ "$1" != *=* ]]; then shift; fi + flake="${1#*=}" + ;; + --mode*|-m*) + if [[ "$1" != *=* ]]; then shift; fi + mode="${1#*=}" + ;; + --help|-h) + echo "--help -h: print this message" + echo "--target -t: set the target system to install on" + echo "--flake -f: set the flake to install on the target system" + echo "--user -u: set the user to install flake as on the target system" + exit 0 + ;; + *) + echo "Error: Invalid argument $1" + exit 1 + ;; + esac + shift +done + +target=${target:-$(hostname)} +flake=${flake:-$target} +mode=${mode:-switch} + +if [[ "$target" == "$(hostname)" ]] +then + sudo nixos-rebuild $mode --flake .#$flake +else + nixos-rebuild $mode --use-remote-sudo --target-host $USER@$target --flake .#$flake +fi