datentraeger

geistige Umweltverschmutzung

git hooks…

February 15, 2018 git

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…

Vimium

top mit Farben

1 thought on “git hooks…”
  1. Peter V. Beck, I.
    February 15, 2018 at 12:16 am

    git hooks… http://blog.datentraeger.li/?p=1047

Comments are closed.

Search
Posts
  • tt-rss update
  • freerdp ERRCONNECT_TLS_CONNECT_FAILED
  • Windose – kein Internet
  • Rechner ohne IP
  • Goodbye Nvidia
Archives
Categories
Tags
3D-Printing Android Apple Arch BBOS/QNX cli Container Database Debian/GNU Linux Docker foo.li FSFE fvwm git Gnome Gnusocial Groupware irc IT Java LaTeX lvm Mail Mobile Movies Multimedia Music Nonsense Office Packaging PHP Puppet Redmine SQL Think-About Uncategorized Vaping vim Virtualisierung Web Win WTF www-links X11 XMPP
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Blogroll
  • Datentraeger Pics
  • foo.li systeme + software
  • GnuSocial.li
Proudly powered by WordPress | Theme: Doo by ThemeVS.