summaryrefslogtreecommitdiffstats
path: root/Completion/Unix/Command/_rsync
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_rsync')
-rw-r--r--Completion/Unix/Command/_rsync53
1 files changed, 38 insertions, 15 deletions
diff --git a/Completion/Unix/Command/_rsync b/Completion/Unix/Command/_rsync
index 56efd7b13..e14c99cc6 100644
--- a/Completion/Unix/Command/_rsync
+++ b/Completion/Unix/Command/_rsync
@@ -85,6 +85,16 @@ _rsync_files() {
_alternative "files:file:_files" "remote-files:remote file:_rsync_remote_files"
}
+_rsync_users_groups() {
+ local -a suf
+ if compset -P '*:'; then
+ _groups
+ else
+ compset -S ':*' || suf=( -qS ':' )
+ _users $suf
+ fi
+}
+
_rsync() {
_arguments -s \
'*'{-v,--verbose}'[increase verbosity]' \
@@ -95,7 +105,7 @@ _rsync() {
'--address=[bind to the specified address]:bind address:_bind_addresses' \
'--log-file-format=[log updates using specified format]:format' \
'--log-file=[log what rsync is doing to the specified file]:file:_files' \
- '(-T --temp-dir)'{-T,--temp-dir=}'[create temporary files in specified directory]:directory:_directories' \
+ '(-T --temp-dir)'{-T+,--temp-dir=}'[create temporary files in specified directory]:directory:_directories' \
'--sockopts=[specify custom TCP options]' \
'(-4 -6 --ipv4 --ipv6)'{-4,--ipv4}'[prefer IPv4]' \
'(-4 -6 --ipv4 --ipv6)'{-6,--ipv6}'[prefer IPv6]' \
@@ -104,11 +114,12 @@ _rsync() {
'--config=[specify alternate rsyncd.conf file]:file:_files' \
'--daemon[run as an rsync daemon]' \
'--detach[detach from the parent]' \
- '(-M --dparam)'{-M,--dparam=}'[override global daemon config parameter]:config parameter' \
+ '(-M --dparam)'{-M+,--dparam=}'[override global daemon config parameter]:config parameter' \
'--no-detach[do not detach from the parent]' \
- client \
'(-)--help[display help information]' \
'*: :_rsync_files' \
+ '--stderr=[change stderr output mode]:output mode [errors]:(errors all client)' \
'(-q --quiet)'{-q,--quiet}'[suppress non-error messages]' \
'--no-motd[suppress the daemon message-of-the-day output]' \
'(-c --checksum)'{-c,--checksum}'[skip based on checksums, not mod-time & size]' \
@@ -121,7 +132,7 @@ _rsync() {
{--no-implied-dirs,--no-i-d}'[do not send implied dirs with --relative]' \
'(-b --backup)'{-b,--backup}'[make backups into hierarchy at indicated directory]' \
'--backup-dir=[make backups into specified directory]:backup directory:_directories' \
- '--suffix=[set backup suffix]:suffix:(\~)' \
+ '--suffix=[set backup suffix]:suffix [~]' \
'(-u --update)'{-u,--update}'[skip files that are newer on the receiving side]' \
'--inplace[update destination files in-place]' \
'(--append-verify)--append[append data onto shorter files]' \
@@ -131,6 +142,7 @@ _rsync() {
'--fake-super[use xattrs to save all file attributes]' \
'(-d --dirs)'{-d,--dirs}'[transfer directories without recursing]' \
{--no-d,--no-dirs}'[turn off --dirs]' \
+ "--mkpath[create the destination's path component]" \
'(-l --links)'{-l,--links}'[copy symlinks as symlinks]' \
{--no-l,--no-links}'[turn off --links]' \
'(-L --copy-links)'{-L,--copy-links}'[transform symlinks into referent file/dir]' \
@@ -142,6 +154,7 @@ _rsync() {
'(-K --keep-dirlinks)'{-K,--keep-dirlinks}'[treat symlinked dir on receiver as dir]' \
'(-p --perms -E --executability)'{-p,--perms}'[preserve permissions]' \
{--no-p,--no-perms}'[turn off --perms]' \
+ '--fileflags[preserve file-flags (aka chflags)]' \
'(-E --executability)'{-E,--executability}'[preserve executability]' \
'(-o --owner)'{-o,--owner}'[preserve owner]' \
{--no-o,--no-owner}'[turn off --owner]' \
@@ -150,22 +163,25 @@ _rsync() {
'(--devices --specials)-D[same as --devices --specials]' \
'(-D)--devices[preserve devices]' \
'--no-devices[turn off --devices]' \
- '--copy-devices[copy device contents as regular file]' \
'(-D)--specials[preserve special files]' \
'--no-specials[turn off --specials]' \