1
0
Fork 0
nixfiles/pkgs/clerie-update-nixfiles/clerie-update-nixfiles.sh

50 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
xgit() {
git -c "user.name=Flake Update Bot" -c "user.email=flake-update-bot@clerie.de" -c "core.pager=cat" "$@"
}
NOW="$(date --utc +%Y-%m-%d-%H-%M)"
xgit status || xgit clone gitea@git.clerie.de:clerie/nixfiles.git .
echo "[!] Download changes"
xgit fetch --all
echo "[!] Chechout remote master"
xgit checkout origin/master
UPDATE_BRANCH="updated-inputs-${NOW}"
echo "[!] Create branch ${UPDATE_BRANCH}"
xgit checkout -b "${UPDATE_BRANCH}"
echo "[!] Update nixpkgs"
nix flake lock --update-input nixpkgs
echo "[!] Commit changes"
xgit add flake.lock
xgit commit -m "Update nixpkgs ${NOW}" || true
xgit diff --name-status origin/updated-inputs "${UPDATE_BRANCH}"
echo "[!] biep"
if xgit diff --quiet origin/updated-inputs "${UPDATE_BRANCH}"
then
echo "[!] Nothing changed, removing branch"
xgit branch -D "${UPDATE_BRANCH}"
exit 0
fi
echo "[!] Publish ${UPDATE_BRANCH}"
xgit push --set-upstream origin "${UPDATE_BRANCH}"
echo "[!] Merge ${UPDATE_BRANCH} into updated-inputs"
xgit checkout updated-inputs
xgit merge -s ort -X theirs "${UPDATE_BRANCH}" -m "Update from ${UPDATE_BRANCH}"
echo "[!] Publish updated-inputs"
xgit push origin updated-inputs