From 52d94d739196728ac5e7cba8cf6c2a9e4a5e1611 Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Sun, 16 Apr 2023 23:02:09 +0700 Subject: [PATCH] add inotify --- files/pushgit_inotify.service | 9 +++++++++ files/pushgit_inotify.sh | 12 ++++++++++++ vestasync.py | 8 ++++++++ 3 files changed, 29 insertions(+) create mode 100644 files/pushgit_inotify.service create mode 100644 files/pushgit_inotify.sh 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):