[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 734cdcdc1e364314f669ce6531d57a3372306fc3
Ville Skyttä
ville.skytta at iki.fi
Wed Apr 28 21:06:45 UTC 2010
The following commit has been merged in the master branch:
commit 734cdcdc1e364314f669ce6531d57a3372306fc3
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Thu Apr 29 00:06:24 2010 +0300
Split rmmod, insmod etc completion to contrib/module-init-tools.
diff --git a/Makefile.am b/Makefile.am
index a5e58a6..bd9284a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -82,6 +82,7 @@ bashcomp_DATA = contrib/abook \
contrib/medusa \
contrib/minicom \
contrib/mkinitrd \
+ contrib/module-init-tools \
contrib/monodevelop \
contrib/mount \
contrib/mplayer \
diff --git a/bash_completion b/bash_completion
index 5967ba8..a8973ef 100644
--- a/bash_completion
+++ b/bash_completion
@@ -980,7 +980,8 @@ _fstypes()
# - stdout: Filename of command in PATH with possible symbolic links resolved.
# Empty string if command not found.
# - return: True (0) if command found, False (> 0) if not.
-_realcommand() {
+_realcommand()
+{
type -P "$1" > /dev/null && {
if type -p realpath > /dev/null; then
realpath "$(type -P "$1")"
@@ -1192,61 +1193,6 @@ _chgrp()
complete -F _chgrp -o filenames chgrp
-# Linux rmmod(8) completion. This completes on a list of all currently
-# installed kernel modules.
-#
-have rmmod && {
-_rmmod()
-{
- local cur
-
- COMPREPLY=()
- cur=`_get_cword`
-
- _installed_modules "$cur"
- return 0
-} # _rmmod()
-complete -F _rmmod rmmod
-
-
-# Linux insmod(8), modprobe(8) and modinfo(8) completion. This completes on a
-# list of all available modules for the version of the kernel currently
-# running.
-#
-_insmod()
-{
- local cur prev modpath
-
- COMPREPLY=()
- cur=`_get_cword`
- prev=${COMP_WORDS[COMP_CWORD-1]}
-
- # behave like lsmod for modprobe -r
- if [[ ${1##*/} == modprobe && "${COMP_WORDS[1]}" == -r ]]; then
- _installed_modules "$cur"
- return 0
- fi
-
- # do filename completion if we're giving a path to a module
- if [[ "$cur" == */* ]]; then
- _filedir '@(?(k)o?(.gz))'
- return 0
- fi
-
- if [[ $COMP_CWORD -gt 1 && "${COMP_WORDS[COMP_CWORD-1]}" != -* ]]; then
- # do module parameter completion
- COMPREPLY=( $( compgen -W "$( /sbin/modinfo -p ${COMP_WORDS[1]} | \
- cut -d: -f1 )" -- "$cur" ) )
- else
- _modules $(uname -r)
- fi
-
- return 0
-} # _insmod
-complete -F _insmod -o filenames insmod modprobe modinfo
-} # have rmmod
-
-
# renice(8) completion
#
_renice()
diff --git a/contrib/module-init-tools b/contrib/module-init-tools
new file mode 100644
index 0000000..5a8994e
--- /dev/null
+++ b/contrib/module-init-tools
@@ -0,0 +1,62 @@
+# bash completion for Linux module-init-tools
+
+# Linux rmmod(8) completion. This completes on a list of all currently
+# installed kernel modules.
+#
+have rmmod &&
+_rmmod()
+{
+ local cur
+
+ COMPREPLY=()
+ cur=`_get_cword`
+
+ _installed_modules "$cur"
+ return 0
+} &&
+complete -F _rmmod rmmod
+
+# Linux insmod(8), modprobe(8) and modinfo(8) completion. This completes on a
+# list of all available modules for the version of the kernel currently
+# running.
+#
+have insmod || have modprobe || have modinfo &&
+_insmod()
+{
+ local cur prev modpath
+
+ COMPREPLY=()
+ cur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ # behave like lsmod for modprobe -r
+ if [[ ${1##*/} == modprobe && "${COMP_WORDS[1]}" == -r ]]; then
+ _installed_modules "$cur"
+ return 0
+ fi
+
+ # do filename completion if we're giving a path to a module
+ if [[ "$cur" == */* ]]; then
+ _filedir '@(?(k)o?(.gz))'
+ return 0
+ fi
+
+ if [[ $COMP_CWORD -gt 1 && "${COMP_WORDS[COMP_CWORD-1]}" != -* ]]; then
+ # do module parameter completion
+ COMPREPLY=( $( compgen -W "$( /sbin/modinfo -p ${COMP_WORDS[1]} | \
+ cut -d: -f1 )" -- "$cur" ) )
+ else
+ _modules $(uname -r)
+ fi
+
+ return 0
+} &&
+complete -F _insmod -o filenames insmod modprobe modinfo
+
+# 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
--
bash-completion
More information about the Bash-completion-commits
mailing list