From 0c534a237876f4103bdc4c106b3096899f930dbe Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Thu, 21 Aug 2003 12:54:24 +0000 Subject: 18949: new completion for du --- ChangeLog | 3 +++ Completion/Unix/Command/.distfiles | 2 +- Completion/Unix/Command/_du | 44 ++++++++++++++++++++++++++++++++++++++ Completion/Unix/Type/_directories | 6 ++++-- 4 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 Completion/Unix/Command/_du diff --git a/ChangeLog b/ChangeLog index 944005395..31491dd91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2003-08-20 Oliver Kiddle + * 18949: Completion/Unix/Command/_du, + Completion/Unix/Type/_directories: new completion for du + * 18947: Completion/Unix/Command/_chown: also complete options using _arguments diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles index a5d32f8cd..6a4d0e929 100644 --- a/Completion/Unix/Command/.distfiles +++ b/Completion/Unix/Command/.distfiles @@ -19,5 +19,5 @@ _user_admin _rsync _arping _spamassassin _mtools _fsh _chkconfig _cdcd _irssi _sccs _texinfo _ant _global _global_tags _figlet _ifconfig _last _larch _lsof _mt _xmlsoft _elinks _tidy _python -_antiword _renice _sablotron _cdrecord _aap +_antiword _renice _sablotron _cdrecord _aap _du ' diff --git a/Completion/Unix/Command/_du b/Completion/Unix/Command/_du new file mode 100644 index 000000000..97a9bc002 --- /dev/null +++ b/Completion/Unix/Command/_du @@ -0,0 +1,44 @@ +#compdef du + +if [[ $(_call_program version $words[1] --version 2>&1) = *Free\ Soft* ]]; then + _arguments -s \ + '(-a --all -s --summarize)'{-a,--all}'[write counts for all files]' \ + '--apparent-size[print apparent sizes rather than disc usage]' \ + '(-B --block-size -k)'{-B,--block-size=}'[specify block size]:size (bytes)' \ + '(-B --block-size -k --apparent-size -b --bytes)'{-b,--bytes}'[equivalent to --apparent-size --block-size=1]' \ + '(-c --total)'{-c,--total}'[produce a grand total]' \ + '(-D --dereference-args -L --dereference)'{-D,--dereference-args}'[dereference arguments that are symlinks]' \ + '(-h --human-readable -H --si)'{-h,--human-readable}'[print sizes in human readable format]' \ + '(-H --si -h --human-readable)'{-H,--si}'[human readable form using powers of 1000]' \ + '(-B --block-size)-k[use block size of 1k]' \ + '(-l --count-links)'{-l,--count-links}'[count sizes many times if hard linked]' \ + '(-L --dereference -D --dereference-args)'{-L,--dereference}'[dereference all symlinks]' \ + '(-S --separate-dirs)'{-S,--seperate-dirs}'[do not include size of subdirectories]' \ + '(-s --summarize --max-depth -a --all)'{-s,--summarize}'[only display total for each argument]' \ + '(-x --one-file-system)'{-x,--one-file-system}'[skip directories on different filesystems]' \ + \*{-X+,--exclude-from=}'[exclude files matching any pattern in file]:file:_files' \ + '*--exclude=[exclude files matching pattern]:pattern' \ + '(-s --summarize)--max-depth=[maximum levels to recurse]:levels' \ + '(* -)--help[display help information]' \ + '(* -)--version[display version information]' \ + '*:file:_files' + return +else + # based on $OSTYPE = solaris2.8 + local xdev='[skip directories on different filesystems]' + if [[ ${commands[$words[1]]:-$words[1]} = *xpg4* ]]; then + args=( -x$xdev ) + else + args=( -d$xdev + '-L[dereference symlinks]' + "(-a)-o[do not add child directories' usage to parent's total]" + ) + fi + _arguments -s "$args[@]" \ + '(-s -o)-a[write counts for all files]' \ + '-k[use block size of 1k]' \ + '-r[notify about unreadable files/directories]' \ + '(-a)-s[only display total for each argument]' \ + '*:file:_files' + return +fi diff --git a/Completion/Unix/Type/_directories b/Completion/Unix/Type/_directories index 9a1a9c1f3..b1ad2d191 100644 --- a/Completion/Unix/Type/_directories +++ b/Completion/Unix/Type/_directories @@ -1,3 +1,5 @@ -#compdef rmdir df du dircmp dirs +#compdef rmdir df dircmp dirs -_files -/ "$@" +local expl + +_wanted directories expl directory _files -/ "$@" - -- cgit 1.4.1