aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/pretty-rebuild
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/pretty-rebuild')
-rwxr-xr-xscripts/pretty-rebuild25
1 files changed, 22 insertions, 3 deletions
diff --git a/scripts/pretty-rebuild b/scripts/pretty-rebuild
index 995eda2..1a7be63 100755
--- a/scripts/pretty-rebuild
+++ b/scripts/pretty-rebuild
@@ -1,14 +1,33 @@
#!/usr/bin/env nix-shell
#!nix-shell -i zsh --packages nvd zsh
-if [[ ${@} =~ "--flake" ]]; then
- args=(${=@})
+zmodload zsh/zutil
+zparseopts -D -E -A opts -- -flake:- h u x
+
+if (( ${+opts[-x]} )); then
+ set -x
+fi
+
+if (( ${+opts[-h]} )); then
+ <<EOF >&2
+usage: ${0:t} [ --flake name ] [ -h ] [ -u ] [ -x ]
+
+ --flake build the system from the specified flake
+ -h this message
+ -u update flake.lock before rebuilding
+ -x enable shell debugging
+EOF
+ exit 1
+fi
+
+if (( ${+opts[-flake]} )); then
+ args=("--flake ${opts[-flake]}" ${=@})
else
args=("--flake .#$(hostname -s)" ${=@})
fi
cd /etc/nixos && \
- nix flake update && \
+ if (( ${+opts[-u]} )); then nix flake update; fi && \
nixos-rebuild switch --show-trace ${=args} && \
echo && \
nixos-rebuild list-generations | cat && \