#!/usr/bin/env nix-shell #!nix-shell -i zsh --packages nvd zsh zmodload zsh/zutil zparseopts -D -E -A opts -- -flake:- h u x if (( ${+opts[-x]} )); then set -x fi if (( ${+opts[-h]} )); then <&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 && \ if (( ${+opts[-u]} )); then nix flake update; fi && \ nixos-rebuild switch --show-trace ${=args} && \ echo && \ nixos-rebuild list-generations | cat && \ echo && \ res=$(find /nix/var/nix/profiles -iname system-\* -type l -exec ls -ltr \{\} + | awk '{print $9}' | tail -2) if [[ ${?} -eq 0 && $(echo -E "${res}" | wc -l) -eq 2 ]]; then nvd diff $(echo -E "${res}" | xargs) fi