Browse Source

rsync: Check for new rsync before applying newer options

The newer options for extended attributes or file-flags got reliable
only after rsync v3.1.
master
Indrajit Raychaudhuri 4 years ago committed by Indrajit Raychaudhuri
parent
commit
32c9b40b42
  1. 21
      modules/rsync/init.zsh

21
modules/rsync/init.zsh

@ -20,14 +20,19 @@ pmodload 'helper' @@ -20,14 +20,19 @@ pmodload 'helper'
_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive \
--hard-links --one-file-system'
if grep -q 'xattrs' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --acls --xattrs"
fi
# macOS Enhancements
# https://bombich.com/kb/ccc5/credits
if is-darwin && grep -q 'file-flags' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --crtimes --fileflags --force-change"
autoload -Uz is-at-least
if is-at-least 3.1 ${"$(rsync --version 2>&1)"[(w)3]}; then
# ACL and extended attributes support
if grep -q 'xattrs' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --acls --xattrs"
fi
# macOS Enhancements
# https://bombich.com/kb/ccc5/credits
if is-darwin && grep -q 'file-flags' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --crtimes --fileflags --force-change"
fi
fi
alias rsync-copy="${_rsync_cmd}"

Loading…
Cancel
Save