44 lines
1.0 KiB
Nix
44 lines
1.0 KiB
Nix
{ self, pkgs, host}:
|
|
|
|
|
|
pkgs.writeShellScriptBin "nixcommit" (''
|
|
#!/run/current-system/sw/bin/bash
|
|
|
|
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
|
|
builtin cd "$HOME/sysflakes" || exit
|
|
nix flake update
|
|
|
|
if [ -n "$2" ]; then
|
|
echo "too many arguments"
|
|
exit
|
|
fi
|
|
|
|
diffcheck=$(git status | grep "working tree clean")
|
|
if [ -n "$diffcheck" ]; then
|
|
scheck && runbg aplay ${self}/media/sound/warning.wav
|
|
echo "Nothing to commit"
|
|
exit
|
|
fi
|
|
|
|
git add .
|
|
|
|
# Automatic fixup commit to the most recent commit (HEAD~1)
|
|
if [ -z "$1" ]; then
|
|
commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
|
|
if [ -n "$commits" ]; then
|
|
git commit --fixup HEAD
|
|
else
|
|
echo "No prior local commits to squash into, please provide a commit message"
|
|
exit
|
|
fi
|
|
else
|
|
# Generate the system generation number
|
|
gen=$(readlink /nix/var/nix/profiles/system | sed 's/.*system-\([0-9]*\)-link/\1/')
|
|
gen=$((gen + 1))
|
|
git commit -m "(${host}) Gen $gen: $1"
|
|
fi
|
|
|
|
scheck && runbg aplay ${self}/media/sound/gitcommit.wav
|
|
builtin cd - || exit
|
|
'')
|