git hooks…
Es ist jetzt schon bald ganze 7 Jahre her, als ich das letzte mal von git-hooks geschrieben hab, aber grad eben finde ich es wieder geil đŸ˜‰
Da ich meine dotfiles ja in git verwalte, ist es natĂ¼rlich angenehm, wenn z.B. die Xdefaults neu gesourct werden, wenn das File sich ändert. Easy mit git hooks (eigentlich sind nur die letzten Zeilen interessant…und ja, ich weiss, man verwendet heutzutage .Xresources…):
#!/usr/bin/env bash # GPL foo.li systeme + software # git hook to run a command after `git pull` if a specified file was changed # Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`. changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" check_run() { echo "$changed_files" | grep --quiet "$1" && eval "$2" } # usage # run `xrdb .Xdefaults` if Xdefaults changed check_run Xdefaults "xrdb ~/.Xdefaults" # reload i3 config if changed check_run config/i3/config "i3-msg reload"
Das File Xdefaults hier liegt Ă¼brigens im git-root und ist ein symlink nach ~/.Xdefaults. Zugegebenermassen – i3 (ebenfalls ein symlink) hab ich noch nicht getestet, aber ich nehme an, dass auch das problemlos funktioniert und i3 die Config neu ladet, wenn sie sich ändert…
Damit git-hooks auch bei einem clonen des Repos mitbeachtet werden, muss aber noch “Hand angelegt werden” (bisher hab ich’s einfach via scp kopiert, aber das kanns ja auch nicht sein). Eine kurze Recherche hat zwar Lösungen ergeben, aber auch das hab ich bisher nicht angeschaut…
1 thought on “git hooks…”
git hooks… http://blog.datentraeger.li/?p=1047
Comments are closed.