#!/usr/bin/env bash
#
# NixOS rebuild script
#
# original by 0atman: https://gist.github.com/0atman/1a5133b842f929ba4c1e195ee67599d5

set -e

pushd ~/nix-config

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
