From 788aa3d158cd75ca3fa1d838ad5ef81c98226fa7 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Mon, 3 May 2021 18:01:53 -0500 Subject: [PATCH] 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. --- modules/rsync/init.zsh | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh index e73e6db..47eabfe 100644 --- a/modules/rsync/init.zsh +++ b/modules/rsync/init.zsh @@ -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}"