mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-16 14:41:02 +02:00
31357: _cp: add support for Mac OS X
If not GNU nor darwin, assume POSIX.
This commit is contained in:
parent
8ab3a7b0e6
commit
cbf6f144a9
2 changed files with 64 additions and 32 deletions
|
@ -1,3 +1,7 @@
|
|||
2013-04-29 Jun T <takimoto-j@kba.biglobe.ne.jp>
|
||||
|
||||
* 31357: Completion/Unix/Command/_cp: add support for Mac OS X
|
||||
|
||||
2013-04-29 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* 31356: Completion/Unix/Command/_subversion: typo noted by Bart.
|
||||
|
|
|
@ -1,34 +1,62 @@
|
|||
#compdef cp
|
||||
|
||||
_arguments -s \
|
||||
'(-a --archive)'{-a,--archive}'[same as -dpR]' \
|
||||
'(-b --backup)-b[backup]' \
|
||||
'(-b --backup)--backup=[backup]:method:(none off numbered t existing nil simple never)' \
|
||||
'--copy-contents[copy contents of special files when recursive]' \
|
||||
'-d[same as --no-dereference --preserve=links]' \
|
||||
'(-f --force)'{-f,--force}'[remove and retry for destinations that cannot be opened]' \
|
||||
'(-i --interactive)'{-i,--interactive}'[prompt before overwrite]' \
|
||||
'-H[follow command-line symbolic links]' \
|
||||
'(-l --link)'{-l,--link}'[link files instead of copying]' \
|
||||
'(-L --dereference)'{-L,--dereference}'[always follow symbolic links]' \
|
||||
'(-n --no-clobber)'{-n,--no-clobber}'[do not overwrite an existing file]' \
|
||||
'(-P --no-dereference)'{-P,--no-dereference}'[never follow symbolic links]' \
|
||||
'-p[same as --preserve=mode,ownership,timestamps]' \
|
||||
'--preserve=[preserve specified attributes]:attributes to preserve:_values -s , mode timestamps ownership links context xattr all' \
|
||||
'--no-preserve=[don'\''t preserve specified attributes]:attributes not to preserve:_values -s , mode timestamps ownership links context xattr all' \
|
||||
'--parents[append source path to target directory]' \
|
||||
'(-R -r --recursive)'{-R,-r,--recursive}'[copy directories recursively]' \
|
||||
'--reflink=[control clone/CoW copies]:when to perform a lightweight copy:(always auto)' \
|
||||
'--remove-destination[remove each existing destination file before attempting to open it]' \
|
||||
'--sparse=[control creation of sparse files]:when to create sparse files:(auto always never)' \
|
||||
'--strip-trailing-slashes[remove any trailing slashes from each source argument]' \
|
||||
'(-s --symbolic-link)'{-s,--symbolic-link}'[make symbolic links instead of copies of non-directories]' \
|
||||
'(-S --suffix)'{-S,--suffix=}'[override the usual backup suffix]:backup suffix:' \
|
||||
'(-t --target-directory)'{-t,--target-directory=}'[copy all source arguments into target directory]:target directory:_files -/' \
|
||||
'(-T --no-target-directory)'{-T,--no-target-directory}'[treat DEST as a normal file]' \
|
||||
'(-u --update)'{-u,--update}'[copy only when source is newer than destination or destination is missing]' \
|
||||
'(-v --verbose)'{-v,--verbose}'[explain what is being done]' \
|
||||
'(-x --one-file-system)'{-x,--one-file-system}'[stay on this file system]' \
|
||||
'--help' \
|
||||
'--version' \
|
||||
'*:file or directory:_files'
|
||||
if _pick_variant gnu=GNU unix --version; then
|
||||
_arguments -s -S \
|
||||
'(-a --archive)'{-a,--archive}'[same as -dR --preserve=all]' \
|
||||
'(-b --backup)-b[backup]' \
|
||||
'(-b --backup)--backup=[backup]:method:(none off numbered t existing nil simple never)' \
|
||||
'--copy-contents[copy contents of special files when recursive]' \
|
||||
'-d[same as --no-dereference --preserve=links]' \
|
||||
'(-f --force)'{-f,--force}'[remove and retry for destinations that cannot be opened]' \
|
||||
'(-i --interactive)'{-i,--interactive}'[prompt before overwrite]' \
|
||||
'-H[follow command-line symbolic links]' \
|
||||
'(-l --link)'{-l,--link}'[link files instead of copying]' \
|
||||
'(-L --dereference)'{-L,--dereference}'[always follow symbolic links]' \
|
||||
'(-n --no-clobber)'{-n,--no-clobber}'[do not overwrite an existing file]' \
|
||||
'(-P --no-dereference)'{-P,--no-dereference}'[never follow symbolic links]' \
|
||||
'-p[same as --preserve=mode,ownership,timestamps]' \
|
||||
'--preserve=[preserve specified attributes]:attributes to preserve:_values -s , mode timestamps ownership links context xattr all' \
|
||||
'--no-preserve=[don'\''t preserve specified attributes]:attributes not to preserve:_values -s , mode timestamps ownership links context xattr all' \
|
||||
'--parents[append source path to target directory]' \
|
||||
'(-R -r --recursive)'{-R,-r,--recursive}'[copy directories recursively]' \
|
||||
'--reflink=[control clone/CoW copies]:when to perform a lightweight copy:(always auto)' \
|
||||
'--remove-destination[remove each existing destination file before attempting to open it]' \
|
||||
'--sparse=[control creation of sparse files]:when to create sparse files:(auto always never)' \
|
||||
'--strip-trailing-slashes[remove any trailing slashes from each source argument]' \
|
||||
'(-s --symbolic-link)'{-s,--symbolic-link}'[make symbolic links instead of copies of non-directories]' \
|
||||
'(-S --suffix)'{-S,--suffix=}'[override the usual backup suffix]:backup suffix:' \
|
||||
'(-t --target-directory)'{-t,--target-directory=}'[copy all source arguments into target directory]:target directory:_files -/' \
|
||||
'(-T --no-target-directory)'{-T,--no-target-directory}'[treat DEST as a normal file]' \
|
||||
'(-u --update)'{-u,--update}'[copy only when source is newer than destination or destination is missing]' \
|
||||
'(-v --verbose)'{-v,--verbose}'[explain what is being done]' \
|
||||
'(-x --one-file-system)'{-x,--one-file-system}'[stay on this file system]' \
|
||||
'--help' \
|
||||
'--version' \
|
||||
'*:file or directory:_files'
|
||||
|
||||
elif [[ "$OSTYPE" == darwin* ]]; then
|
||||
_arguments -s -S \
|
||||
'-R[copy directories recursively]' \
|
||||
'(-L -P)-H[with -R, follow symlinks on the command line]' \
|
||||
'(-H -P)-L[with -R, follow all symlinks]' \
|
||||
'(-H -L)-P[with -R, do not follow symlinks (default)]' \
|
||||
'(-i -n)-f[force overwriting existing file]' \
|
||||
'(-f -n)-i[confirm before overwriting existing file]' \
|
||||
'(-f -i)-n[do not overwrite existing file]' \
|
||||
'-a[same as -pRP]' \
|
||||
'-p[preserve timestamps, mode, owner, flags, ACLs, and Extended Attributes]' \
|
||||
'-v[show file names as they are copied]' \
|
||||
'-X[do not copy Extended Attributes or resource forks]' \
|
||||
'(-)*:file or directory:_files'
|
||||
|
||||
else # assume POSIX
|
||||
_arguments -s -S \
|
||||
'-R[copy directories recursively]' \
|
||||
'(-L -P)-H[with -R, follow symlinks on the command line]' \
|
||||
'(-H -P)-L[with -R, follow all symlinks]' \
|
||||
'(-H -L)-P[do not follow symlinks]' \
|
||||
'(-i)-f[force overwriting existing file]' \
|
||||
'(-f)-i[confirm before overwriting existing file]' \
|
||||
'-p[preserve timestamps, mode, and owner]' \
|
||||
'(-)*:file or directory:_files'
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue