#!/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