aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README.rst7
-rwxr-xr-xgit-remote-gcrypt7
2 files changed, 12 insertions, 2 deletions
diff --git a/README.rst b/README.rst
index 1bfbdaf..902e15f 100644
--- a/README.rst
+++ b/README.rst
@@ -89,6 +89,13 @@ The following ``git-config(1)`` variables are supported:
part of the participant list. You may use the per-remote version
to sign different remotes using different keys.
+``remote.<name>.gcrypt-rsync-put-flags``
+ ..
+``gcrypt.rsync-put-flags``
+ Flags to be passed to ``rsync`` when uploading to a remote using the
+ ``rsync://`` backend. If the flags are set to a specific remote, the
+ global flags, if also set, will not be applied for that remote.
+
Environment variables
=====================
diff --git a/git-remote-gcrypt b/git-remote-gcrypt
index dcdec75..689e025 100755
--- a/git-remote-gcrypt
+++ b/git-remote-gcrypt
@@ -249,7 +249,7 @@ PUT()
curl -s -S -k --ftp-create-dirs -T "$3" "$1/$2"
elif isurl rsync "$1"
then
- rsync -I -W "$3" "${1#rsync://}"/"$2" >&2
+ rsync $Conf_rsync_put_flags -I -W "$3" "${1#rsync://}"/"$2" >&2
elif isurl rclone "$1"
then
rclone copyto "$3" "${1#rclone://}"/"$2" >&2
@@ -280,7 +280,8 @@ PUTREPO()
:
elif isurl rsync "$1"
then
- rsync -q -r --exclude='*' "$Localdir/" "${1#rsync://}" >&2
+ rsync $Conf_rsync_put_flags -q -r --exclude='*' \
+ "$Localdir/" "${1#rsync://}" >&2
elif isurl rclone "$1"
then
rclone mkdir "${1#rclone://}" >&2
@@ -429,6 +430,8 @@ read_config()
Conf_pubish_participants=$(git config --get --bool "remote.$NAME.gcrypt-publish-participants" '.+' ||
git config --get --bool gcrypt.publish-participants || :)
Conf_gpg_args=$(git config --get gcrypt.gpg-args '.+' || :)
+ Conf_rsync_put_flags=$(git config --get "remote.$NAME.gcrypt-rsync-put-flags" '.+' ||
+ git config --get "gcrypt.rsync-put-flags" '.+' || :)
# Figure out which keys we should encrypt to or accept signatures from
if isnull "$conf_part" || iseq "$conf_part" simple