27 lines
887 B
Bash
Executable file
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
|
|
|