From b19433c58058b400115377b339bd1530368c161f Mon Sep 17 00:00:00 2001
From: Dmitriy Safronov <zimniy@cyberbrain.pw>
Date: Wed, 26 Jan 2022 14:55:18 +0300
Subject: [PATCH] rsync_webhoook

---
 Dockerfile | 8 ++++++--
 README.md  | 7 +++++++
 rsync-sync | 9 +++++++++
 3 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 1b1b8de..2fc260f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,13 +3,17 @@ FROM registry.cyberbrain.pw/docker/git-sync:latest
 ENV GIT_SYNC_ROOT='/tmp/git' \
     GIT_SYNC_DEST='sync' \
     GIT_SYNC_EXECHOOK_COMMAND='/rsync-sync' \
-    GIT_SYNC_ADD_USER='true'
+    GIT_SYNC_ADD_USER='true' \
+    RSYNC_SYNC_WEBHOOK_METHOD='POST' \
+    RSYNC_SYNC_WEBHOOK_TIMEOUT=1 \
+    RSYNC_SYNC_WEBHOOK_BACKOFF=3 \
+    RSYNC_SYNC_WEBHOOK_ATTEMPTS=3
 
 USER root:root
 
 RUN set -ex \
     && apt-get update -y \
-    && apt-get install --no-install-recommends -y rsync \
+    && apt-get install --no-install-suggests --no-install-recommends -y rsync curl \
     && apt-get clean -y \
     && rm -rf /var/lib/apt/lists/* \
     && chmod -Rv 0777 "${GIT_SYNC_ROOT:-/tmp/git}/"
diff --git a/README.md b/README.md
index 72109ac..9697c97 100644
--- a/README.md
+++ b/README.md
@@ -11,3 +11,10 @@ Preset env vars:
 - GIT_SYNC_DEST='sync'
 - GIT_SYNC_EXECHOOK_COMMAND='/rsync-sync'
 - GIT_SYNC_ADD_USER='true'
+- RSYNC_SYNC_WEBHOOK_METHOD='POST'
+- RSYNC_SYNC_WEBHOOK_TIMEOUT=1
+- RSYNC_SYNC_WEBHOOK_BACKOFF=3
+- RSYNC_SYNC_WEBHOOK_ATTEMPTS=3
+
+Custom env vars:
+- RSYNC_SYNC_WEBHOOK_URL
diff --git a/rsync-sync b/rsync-sync
index 1df8a19..a98e412 100644
--- a/rsync-sync
+++ b/rsync-sync
@@ -6,3 +6,12 @@ rsync -a \
     --delete-after \
     "${GIT_SYNC_ROOT:-/tmp/git}/${GIT_SYNC_DEST:-sync}/" \
     /sync
+
+if test -n "${RSYNC_SYNC_WEBHOOK_URL}"; then
+    curl -I -L \
+        -X ${RSYNC_SYNC_WEBHOOK_METHOD:-POST} \
+        -m ${RSYNC_SYNC_WEBHOOK_TIMEOUT:-1} \
+        --retry ${RSYNC_SYNC_WEBHOOK_ATTEMPTS:-3} \
+        --retry-delay ${RSYNC_SYNC_WEBHOOK_BACKOFF:-3} \
+        "${RSYNC_SYNC_WEBHOOK_URL}"
+fi
-- 
GitLab