diff --git a/files/pushgit_inotify.service b/files/pushgit_inotify.service new file mode 100644 index 0000000..4a9bc2c --- /dev/null +++ b/files/pushgit_inotify.service @@ -0,0 +1,9 @@ +[Unit] +Description=Script triggered by file changes in a folder (including subfolders) + +[Service] +ExecStart=/usr/local/bin/pushgit_inotify.sh +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/files/pushgit_inotify.sh b/files/pushgit_inotify.sh new file mode 100644 index 0000000..02e7d78 --- /dev/null +++ b/files/pushgit_inotify.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +EXCLUDE_PATTERN='(^|/)(\.git($|/)|wb-mqtt-mbgate\.conf$|resolv\.conf$)' + +inotifywait -m -r -e close_write,move,create,delete --exclude "$EXCLUDE_PATTERN" --format '%w%f' /mnt/data/etc | while read FILE +do + export GIT_AUTHOR_NAME="vestasync_wb_$(hostname)_inotify" + export GIT_COMMITTER_NAME="vestasync_wb_$(hostname)_inotify" + cd /mnt/data/etc/ + git add . + git commit -m "$(date)" + git push -u origin master +done diff --git a/vestasync.py b/vestasync.py index 145a89d..9b14de8 100755 --- a/vestasync.py +++ b/vestasync.py @@ -112,12 +112,20 @@ def create_autogit_systemd(c): c.put("./files/pushgit.sh", pushgit_script_path) c.run(f"chmod +x {pushgit_script_path}") + pushgit_inotify_script_path = "/usr/local/bin/pushgit_inotify.sh" + c.put("./files/pushgit.sh", pushgit_inotify_script_path) + c.run(f"chmod +x {pushgit_inotify_script_path}") + c.put("./files/pushgit.service", "/etc/systemd/system/pushgit.service") c.put("./files/pushgit.timer", "/etc/systemd/system/pushgit.timer") + c.put("./files/pushgit_inotify.service", "/etc/systemd/system/pushgit_inotify.service") + c.run("systemctl daemon-reload") c.run("systemctl enable pushgit.timer") c.run("systemctl start pushgit.timer") + c.run("systemctl enable pushgit_inotify.service") + c.run("systemctl start pushgit_inotify.service") def git_clone(c):