#!/usr/bin/env bash # # NixOS update and rebuild script # # original by 0atman: https://gist.github.com/0atman/1a5133b842f929ba4c1e195ee67599d5 set -e pushd ~/nix-config nix flake update if git diff --quiet; then echo "No changes detected, exiting." popd exit 0 fi alejandra . &>/dev/null \ || ( alejandra . ; echo "formatting failed!" && exit 1) git diff -U0 echo "NixOS rebuilding..." sudo nixos-rebuild switch --flake . &>nixos-switch.log \ || (cat nixos-switch.log | grep --color error && exit 1) current=$(nixos-rebuild list-generations | grep current) git commit -am "$current" popd notify-send -e "NixOS Rebuilt OK!" --icon=software-update-available