diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 16:14:31 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 16:14:31 +0000 |
commit | 2d5707c7479eacb3b1ad98e01b53f56a88f8fb78 (patch) | |
tree | d9c334e83692851c02e3e1b8e65570c97bc82481 /support/rsync-no-vanished | |
parent | Initial commit. (diff) | |
download | rsync-2d5707c7479eacb3b1ad98e01b53f56a88f8fb78.tar.xz rsync-2d5707c7479eacb3b1ad98e01b53f56a88f8fb78.zip |
Adding upstream version 3.2.7.upstream/3.2.7
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'support/rsync-no-vanished')
-rwxr-xr-x | support/rsync-no-vanished | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/support/rsync-no-vanished b/support/rsync-no-vanished new file mode 100755 index 0000000..b31a5d2 --- /dev/null +++ b/support/rsync-no-vanished @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +REAL_RSYNC=/usr/bin/rsync +IGNOREEXIT=24 +IGNOREOUT='^(file has vanished: |rsync warning: some files vanished before they could be transferred)' + +# If someone installs this as "rsync", make sure we don't affect a server run. +for arg in "${@}"; do + if [[ "$arg" == --server ]]; then + exec $REAL_RSYNC "${@}" + exit $? # Not reached + fi +done + +set -o pipefail + +# This filters stderr without merging it with stdout: +{ $REAL_RSYNC "${@}" 2>&1 1>&3 3>&- | grep -E -v "$IGNOREOUT"; ret=${PIPESTATUS[0]}; } 3>&1 1>&2 + +if [[ $ret == $IGNOREEXIT ]]; then + ret=0 +fi + +exit $ret |