nixrice/misc/dot-local/bin/overrides/nixos-rebuild
2024-02-25 23:58:49 -05:00

27 lines
887 B
Bash
Executable file

#!/usr/bin/env sh
# Since the below command is piped into nom, it has weird output if the sudo password
# has to be prompted. Add a dummy command to make sure a valid token exists (assuming the
# user's sudo config saves sudo password for some time after entry)
sudo echo >/dev/null
function last_two_builds {
ls -v1 /nix/var/nix/profiles | tail -n 2
}
before="$(last_two_builds)"
sudo \
unbuffer `# Preserve colors when piping into nom` \
sysbin `# Use the system's nixos-rebuild (as opposed to running this script again)` \
nixos-rebuild "$@" `# Rebuild` \
|& nom `# Visualize a live dependency graph while building`
after="$(last_two_builds)"
if [ "$before" = "$after" ]; then
exit 0 # No new build happened
fi
# Print diff between last two builds
ls -v1 /nix/var/nix/profiles | tail -n 2 | awk '{print "/nix/var/nix/profiles/" $0}' - | xargs nvd diff