aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2003-08-21 12:54:24 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2003-08-21 12:54:24 +0000
commit0c534a237876f4103bdc4c106b3096899f930dbe (patch)
treec8480ec1b56b1cd01c3bf6d6083a529a9e9346ea
parent75ce14396bc13a3ec848097b805f8dc8e72b7527 (diff)
downloadzsh-0c534a237876f4103bdc4c106b3096899f930dbe.tar.gz
zsh-0c534a237876f4103bdc4c106b3096899f930dbe.tar.xz
zsh-0c534a237876f4103bdc4c106b3096899f930dbe.zip
18949: new completion for du
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Unix/Command/.distfiles2
-rw-r--r--Completion/Unix/Command/_du44
-rw-r--r--Completion/Unix/Type/_directories6
4 files changed, 52 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 944005395..31491dd91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2003-08-20 Oliver Kiddle <opk@zsh.org>
+ * 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 -/ "$@" -