[Bash-completion-commits] [SCM] bash-completion branch, master, updated. efaae3f8b958b14dd6fa5b7f07ea13375ddc3737
Ville Skyttä
ville.skytta at iki.fi
Wed Jun 9 20:15:43 UTC 2010
The following commit has been merged in the master branch:
commit bf0ec3ce0e9a2d56b42189648b9157612b2d3762
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Wed Jun 9 22:33:25 2010 +0300
Split chown, chgrp, and id completions into contrib/coreutils.
diff --git a/CHANGES b/CHANGES
index 783ddb6..db9b923 100644
--- a/CHANGES
+++ b/CHANGES
@@ -57,6 +57,7 @@ bash-completion (2.x)
* Split sshfs completion from contrib/ssh into contrib/sshfs.
* Split mount and umount completion into contrib/mount.
* Split service completion into contrib/service.
+ * Split chown, chgrp, and id completions into contrib/coreutils.
* Do basic HTML file completion with Firefox and Chrome and friends,
and Epiphany.
* Do basic diff/patch completion with cdiff and kompare.
diff --git a/Makefile.am b/Makefile.am
index 8662bc8..7e03d5c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,6 +25,7 @@ bashcomp_DATA = contrib/abook \
contrib/cksfv \
contrib/clisp \
contrib/configure \
+ contrib/coreutils \
contrib/cowsay \
contrib/cpan2dist \
contrib/cpio \
diff --git a/bash_completion b/bash_completion
index e4caaa3..bfba066 100644
--- a/bash_completion
+++ b/bash_completion
@@ -1083,101 +1083,6 @@ _dvd_devices()
kernel buildworld' make
-# chown(1) completion
-#
-_chown()
-{
- local cur prev split=false
-
- # Get cur and prev words; but don't treat user:group as separate words.
- cur=`_get_cword :`
- prev=`_get_pword :`
-
- _split_longopt && split=true
-
- case "$prev" in
- --from)
- _usergroup
- return 0
- ;;
- --reference)
- _filedir
- return 0
- ;;
- esac
-
- $split && return 0
-
- if [[ "$cur" == -* ]]; then
- # Complete -options
- local w opts
- for w in "${COMP_WORDS[@]}" ; do
- [[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && break
- done
- COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \
- --no-dereference --from --silent --quiet --reference --recursive \
- --verbose --help --version $opts' -- "$cur" ) )
- else
- local args
-
- # The first argument is an usergroup; the rest are filedir.
- _count_args :
-
- if [[ $args == 1 ]]; then
- _usergroup
- else
- _filedir
- fi
- fi
-} # _chown()
-complete -F _chown -o filenames chown
-
-
-# chgrp(1) completion
-#
-_chgrp()
-{
- local cur prev split=false
-
- COMPREPLY=()
- cur=`_get_cword`
- cur=${cur//\\\\/}
- prev=${COMP_WORDS[COMP_CWORD-1]}
-
- _split_longopt && split=true
-
- if [[ "$prev" == --reference ]]; then
- _filedir
- return 0
- fi
-
- $split && return 0
-
- # options completion
- if [[ "$cur" == -* ]]; then
- local w opts
- for w in "${COMP_WORDS[@]}" ; do
- [[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && break
- done
- COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \
- --no-dereference --silent --quiet --reference --recursive \
- --verbose --help --version $opts' -- "$cur" ) )
- return 0
- fi
-
- # first parameter on line or first since an option?
- if [[ $COMP_CWORD -eq 1 && "$cur" != -* || "$prev" == -* ]]; then
- local IFS=$'\n'
- COMPREPLY=( $( compgen -g "$cur" 2>/dev/null ) )
- else
- _filedir || return 0
- fi
-
- return 0
-} # _chgrp()
-complete -F _chgrp -o filenames chgrp
-
-
# renice(8) completion
#
_renice()
@@ -1759,25 +1664,6 @@ _look()
} &&
complete -F _look -o default look
-# id(1) completion
-#
-have id &&
-_id()
-{
- local cur
-
- COMPREPLY=()
- cur=`_get_cword`
-
- if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W '-a -g --group -G --groups -n --name\
- -r --real -u --user --help --version' -- "$cur" ) )
- else
- COMPREPLY=( $( compgen -u "$cur" ) )
- fi
-} &&
-complete -F _id id
-
_filedir_xspec()
{
local IFS cur xspec
diff --git a/contrib/coreutils b/contrib/coreutils
new file mode 100644
index 0000000..8146e9a
--- /dev/null
+++ b/contrib/coreutils
@@ -0,0 +1,124 @@
+# Completions for various core utilities
+
+# chown(1) completion
+#
+have chown &&
+_chown()
+{
+ local cur prev split=false
+
+ # Get cur and prev words; but don't treat user:group as separate words.
+ cur=`_get_cword :`
+ prev=`_get_pword :`
+
+ _split_longopt && split=true
+
+ case "$prev" in
+ --from)
+ _usergroup
+ return 0
+ ;;
+ --reference)
+ _filedir
+ return 0
+ ;;
+ esac
+
+ $split && return 0
+
+ if [[ "$cur" == -* ]]; then
+ # Complete -options
+ local w opts
+ for w in "${COMP_WORDS[@]}" ; do
+ [[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && break
+ done
+ COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \
+ --no-dereference --from --silent --quiet --reference --recursive \
+ --verbose --help --version $opts' -- "$cur" ) )
+ else
+ local args
+
+ # The first argument is an usergroup; the rest are filedir.
+ _count_args :
+
+ if [[ $args == 1 ]]; then
+ _usergroup
+ else
+ _filedir
+ fi
+ fi
+} &&
+complete -F _chown -o filenames chown
+
+
+# chgrp(1) completion
+#
+have chgrp &&
+_chgrp()
+{
+ local cur prev split=false
+
+ COMPREPLY=()
+ cur=`_get_cword`
+ cur=${cur//\\\\/}
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ _split_longopt && split=true
+
+ if [[ "$prev" == --reference ]]; then
+ _filedir
+ return 0
+ fi
+
+ $split && return 0
+
+ # options completion
+ if [[ "$cur" == -* ]]; then
+ local w opts
+ for w in "${COMP_WORDS[@]}" ; do
+ [[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && break
+ done
+ COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \
+ --no-dereference --silent --quiet --reference --recursive \
+ --verbose --help --version $opts' -- "$cur" ) )
+ return 0
+ fi
+
+ # first parameter on line or first since an option?
+ if [[ $COMP_CWORD -eq 1 && "$cur" != -* || "$prev" == -* ]]; then
+ local IFS=$'\n'
+ COMPREPLY=( $( compgen -g "$cur" 2>/dev/null ) )
+ else
+ _filedir || return 0
+ fi
+
+ return 0
+} &&
+complete -F _chgrp -o filenames chgrp
+
+# id(1) completion
+#
+have id &&
+_id()
+{
+ local cur
+
+ COMPREPLY=()
+ cur=`_get_cword`
+
+ if [[ "$cur" == -* ]]; then
+ COMPREPLY=( $( compgen -W '-a -g --group -G --groups -n --name\
+ -r --real -u --user --help --version' -- "$cur" ) )
+ else
+ COMPREPLY=( $( compgen -u "$cur" ) )
+ fi
+} &&
+complete -F _id id
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
diff --git a/test/completion/chgrp.exp b/test/completion/chgrp.exp
new file mode 100644
index 0000000..2b1d225
--- /dev/null
+++ b/test/completion/chgrp.exp
@@ -0,0 +1 @@
+assert_source_completions chgrp
diff --git a/test/lib/completions/abook.exp b/test/lib/completions/chgrp.exp
similarity index 83%
copy from test/lib/completions/abook.exp
copy to test/lib/completions/chgrp.exp
index 3f4e301..8dfeea7 100644
--- a/test/lib/completions/abook.exp
+++ b/test/lib/completions/chgrp.exp
@@ -11,7 +11,7 @@ proc teardown {} {
setup
-assert_complete_any "abook "
+assert_complete_any "chgrp "
sync_after_int
--
bash-completion
More information about the Bash-completion-commits
mailing list