Merge branch 'master' into garik

This commit is contained in:
Igor Murzov 2010-10-14 02:44:32 +04:00
commit c18a7e3f95
229 changed files with 1802 additions and 565 deletions

44
CHANGES
View File

@ -1,18 +1,56 @@
bash-completion (2.x) bash-completion (2.x)
[ Guillaume Rousse ]
* added pure-perl perldoc completion helper, using work from Aristotle
Pagaltzis (pagaltzis@gmx.de)
[ David Paleino ] [ David Paleino ]
* Fixed "service" completion, thanks to John Hedges (Debian: #586210) * Fixed "service" completion, thanks to John Hedges (Debian: #586210)
[ Ville Skyttä ] [ Ville Skyttä ]
* Activate hping2 completion also for hping and hping3. * Activate hping2 completion also for hping and hping3.
* Add crontab and lrzip completions. * Add badblocks, compgen, crontab, dumpe2fs, e2freefrag, e2label, ether-wake,
* Add gif to mplayer filename completions (Alioth: #312512). filefrag, iftop, lrzip, POSIX sh, sysbench, tune2fs, xmodmap, and xrdb
completions.
* Add *.gif (Alioth: #312512), *.3gpp, *.3gpp2, and *.awb to mplayer
filename completions.
* Add "short" tarball extensions to unxz, unlzma etc completions. * Add "short" tarball extensions to unxz, unlzma etc completions.
* Improve /etc/init.d/* and sqlite3 completions. * Improve /etc/init.d/*, ipmitool, jar, mencoder, mplayer, povray, sqlite3,
and general help parsing completions.
* Fix p4 and povray completions (Alioth: #312625).
* Add *.xsd, *.xsl, *.rng, and *.wsdl to xmllint filename completions.
* Recognize rpm query mode based on the --file, --group, --package, and
--all long options (RedHat: #630328).
* Improve rpm query option completions.
* Drop bad kompare filename completion (Alioth: #312708).
* Make _filedir and _filedir_xspec complete uppercase versions of their
filename extension arguments in addition to exact case matches.
* IPv6 known hosts completion fixes (Alioth: #312695, RedHat: #630658).
* Fixes to completions for filenames containing tabs (RedHat: #629518).
[ Freddy Vulto ] [ Freddy Vulto ]
* Added _tilde(), fix ~username completion (Alioth: #312613, Debian: #587095) * Added _tilde(), fix ~username completion (Alioth: #312613, Debian: #587095)
* Speed up `compopt' availability detection * Speed up `compopt' availability detection
* Fix _filedir `-o filenames' detection on bash-3 (Alioth: #312646)
* Fix __reassemble_comp_words_by_ref (Alioth #312740)
[ Anton Khirnov ]
* Improve mplayer and mencoder completions.
[ Paul Walmsley ]
* Add *.webm to mplayer file completions (Debian: #588079).
[ Miklos Vajna ]
* Add *.amr to mplayer file completions (Alioth: #312634).
[ Andrej Gelenberg ]
* Add *.part (partially downloaded) to mplayer and xine-based player
completions (Alioth: #312657).
[ Stephen Gildea ]
* Fix false posives for non-option words in _parse_help (Alioth: #312750).
[ Andrey G. Grozin ]
* Add *.fb2 to okular filename completions.
-- David Paleino <d.paleino@gmail.com> Wed, 16 Jun 2010 17:53:22 +0200 -- David Paleino <d.paleino@gmail.com> Wed, 16 Jun 2010 17:53:22 +0200

View File

@ -1,175 +1,7 @@
SUBDIRS = test SUBDIRS = completions helpers test
sysconf_DATA = bash_completion sysconf_DATA = bash_completion
bashcompdir = $(sysconfdir)/bash_completion.d
bashcomp_DATA = contrib/abook \
contrib/ant \
contrib/apache2ctl \
contrib/apt \
contrib/apt-build \
contrib/aptitude \
contrib/aspell \
contrib/autorpm \
contrib/bash-builtins \
contrib/bind-utils \
contrib/bitkeeper \
contrib/bittorrent \
contrib/bluez \
contrib/brctl \
contrib/bzip2 \
contrib/cardctl \
contrib/cfengine \
contrib/chkconfig \
contrib/chsh \
contrib/cksfv \
contrib/clisp \
contrib/configure \
contrib/coreutils \
contrib/cowsay \
contrib/cpan2dist \
contrib/cpio \
contrib/crontab \
contrib/cups \
contrib/cryptsetup \
contrib/cvs \
contrib/cvsps \
contrib/dd \
contrib/dhclient \
contrib/dict \
contrib/dpkg \
contrib/dselect \
contrib/dsniff \
contrib/findutils \
contrib/freeciv \
contrib/fuse \
contrib/gcc \
contrib/gcl \
contrib/gdb \
contrib/genisoimage \
contrib/getent \
contrib/gkrellm \
contrib/gnatmake \
contrib/gpg \
contrib/gpg2 \
contrib/gzip \
contrib/heimdal \
contrib/hping2 \
contrib/iconv \
contrib/ifupdown \
contrib/imagemagick \
contrib/info \
contrib/iptables \
contrib/ipmitool \
contrib/ipsec \
contrib/ipv6calc \
contrib/isql \
contrib/jar \
contrib/java \
contrib/k3b \
contrib/kldload \
contrib/larch \
contrib/ldapvi \
contrib/lftp \
contrib/lilo \
contrib/links \
contrib/lintian \
contrib/lisp \
contrib/lrzip \
contrib/lvm \
contrib/lzma \
contrib/lzop \
contrib/mailman \
contrib/make \
contrib/man \
contrib/mc \
contrib/mcrypt \
contrib/mdadm \
contrib/medusa \
contrib/minicom \
contrib/mkinitrd \
contrib/module-init-tools \
contrib/monodevelop \
contrib/mount \
contrib/mplayer \
contrib/msynctool \
contrib/mtx \
contrib/munin-node \
contrib/mutt \
contrib/mysqladmin \
contrib/ncftp \
contrib/net-tools \
contrib/nmap \
contrib/ntpdate \
contrib/openldap \
contrib/openssl \
contrib/p4 \
contrib/perl \
contrib/pine \
contrib/pkg-config \
contrib/pkg_install \
contrib/pkgtools \
contrib/pm-utils \
contrib/portupgrade \
contrib/postfix \
contrib/postgresql \
contrib/povray \
contrib/procps \
contrib/python \
contrib/qdbus \
contrib/qemu \
contrib/quota-tools \
contrib/rcs \
contrib/rdesktop \
contrib/reportbug \
contrib/resolvconf \
contrib/rfkill \
contrib/ri \
contrib/rpcdebug \
contrib/rpm \
contrib/rpmcheck \
contrib/rrdtool \
contrib/rsync \
contrib/rtcwake \
contrib/samba \
contrib/sbcl \
contrib/screen \
contrib/service \
contrib/shadow \
contrib/sitecopy \
contrib/smartctl \
contrib/snownews \
contrib/sqlite3 \
contrib/ssh \
contrib/sshfs \
contrib/strace \
contrib/svk \
contrib/sysctl \
contrib/sysv-rc \
contrib/tar \
contrib/tcpdump \
contrib/unace \
contrib/unrar \
contrib/update-alternatives \
contrib/util-linux \
contrib/vncviewer \
contrib/vpnc \
contrib/wireless-tools \
contrib/wodim \
contrib/wol \
contrib/wtf \
contrib/wvdial \
contrib/xhost \
contrib/xm \
contrib/xmllint \
contrib/xmlwf \
contrib/xmms \
contrib/xrandr \
contrib/xsltproc \
contrib/xz \
contrib/yp-tools \
contrib/yum-arch
profiledir = $(sysconfdir)/profile.d profiledir = $(sysconfdir)/profile.d
profile_DATA = bash_completion.sh profile_DATA = bash_completion.sh
@ -178,6 +10,4 @@ bash_completion.sh: bash_completion.sh.in Makefile
CLEANFILES = bash_completion.sh CLEANFILES = bash_completion.sh
EXTRA_DIST = CHANGES $(sysconf_DATA) $(bashcomp_DATA) bash_completion.sh.in \ EXTRA_DIST = CHANGES $(sysconf_DATA) bash_completion.sh.in
contrib/_mock contrib/_modules contrib/_subversion contrib/_yum \
contrib/_yum-utils

View File

@ -70,7 +70,7 @@ complete -d pushd
# START exclude -- do NOT remove this line # START exclude -- do NOT remove this line
# bzcmp, bzdiff, bz*grep, bzless, bzmore intentionally not here, see Debian: #455510 # bzcmp, bzdiff, bz*grep, bzless, bzmore intentionally not here, see Debian: #455510
complete -f -X '!*.?(t)bz?(2)' bunzip2 bzcat pbunzip2 pbzcat complete -f -X '!*.?(t)bz?(2)' bunzip2 bzcat pbunzip2 pbzcat
complete -f -X '!*.@(zip|ZIP|[ejw]ar|[EJW]AR|exe|EXE|pk3|wsz|zargo|xpi|sxw|o[tx]t|od[fgpst]|epub)' unzip zipinfo complete -f -X '!*.@(zip|[ejw]ar|exe|pk3|wsz|zargo|xpi|sxw|o[tx]t|od[fgpst]|epub)' unzip zipinfo
complete -f -X '*.Z' compress znew complete -f -X '*.Z' compress znew
# zcmp, zdiff, z*grep, zless, zmore intentionally not here, see Debian: #455510 # zcmp, zdiff, z*grep, zless, zmore intentionally not here, see Debian: #455510
complete -f -X '!*.@(Z|[gGd]z|t[ag]z)' gunzip zcat unpigz complete -f -X '!*.@(Z|[gGd]z|t[ag]z)' gunzip zcat unpigz
@ -79,33 +79,32 @@ complete -f -X '!*.Z' uncompress
complete -f -X '!*.@(tlz|lzma)' lzcat lzegrep lzfgrep lzgrep lzless lzmore unlzma complete -f -X '!*.@(tlz|lzma)' lzcat lzegrep lzfgrep lzgrep lzless lzmore unlzma
complete -f -X '!*.@(?(t)xz|tlz|lzma)' unxz xzcat complete -f -X '!*.@(?(t)xz|tlz|lzma)' unxz xzcat
complete -f -X '!*.lrz' lrunzip complete -f -X '!*.lrz' lrunzip
complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' ee complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' ee
complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm)' xv qiv
complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi kdvi
complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' kdvi complete -f -X '!*.dvi' dvips dviselect dvitype dvipdf advi dvipdfm dvipdfmx
complete -f -X '!*.@(dvi|DVI)' dvips dviselect dvitype dvipdf advi dvipdfm dvipdfmx complete -f -X '!*.pdf' acroread gpdf xpdf
complete -f -X '!*.@(pdf|PDF)' acroread gpdf xpdf complete -f -X '!*.@(?(e)ps|pdf)' kpdf
complete -f -X '!*.@(?(e)ps|?(E)PS|pdf|PDF)' kpdf complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF|dvi|DVI)?(.gz|.GZ|.bz2|.BZ2)|cb[rz]|djv?(u)|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|fdf)' evince
complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF|dvi|DVI)?(.gz|.GZ|.bz2|.BZ2)|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|fdf|FDF)' evince complete -f -X '!*.@(okular|@(?(e|x)ps|?(E|X)PS|pdf|PDF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM|fdf|FDF)?(.?(gz|GZ|bz2|BZ2)))' okular
complete -f -X '!*.@(okular|@(?(e|x)ps|?(E|X)PS|pdf|PDF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb|FB|mobi|MOBI|g3|G3|chm|CHM|fdf|FDF)?(.?(gz|GZ|bz2|BZ2)))' okular complete -f -X '!*.@(?(e)ps|pdf)' ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr
complete -f -X '!*.@(?(e)ps|?(E)PS|pdf|PDF)' ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr
complete -f -X '!*.texi*' makeinfo texi2html complete -f -X '!*.texi*' makeinfo texi2html
complete -f -X '!*.@(?(la)tex|?(LA)TEX|texi|TEXI|dtx|DTX|ins|INS|ltx|LTX)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi complete -f -X '!*.@(?(la)tex|texi|dtx|ins|ltx)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi
complete -f -X '!*.@(mp3|MP3)' mpg123 mpg321 madplay complete -f -X '!*.mp3' mpg123 mpg321 madplay
complete -f -X '!*@(.@(mp?(e)g|MP?(E)G|wma|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|wmv|mp[234]|MP[234]|m4[pv]|M4[PV]|mkv|MKV|og[gmv]|OG[GMV]|t[ps]|T[PS]|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))' xine aaxine fbxine kaffeine dragon complete -f -X '!*@(.@(mp?(e)g|MP?(E)G|wma|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|wmv|mp[234]|MP[234]|m4[pv]|M4[PV]|mkv|MKV|og[gmv]|OG[GMV]|t[ps]|T[PS]|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.part)' xine aaxine fbxine kaffeine dragon
complete -f -X '!*.@(avi|asf|wmv)' aviplay complete -f -X '!*.@(avi|asf|wmv)' aviplay
complete -f -X '!*.@(rm?(j)|ra?(m)|smi?(l))' realplay complete -f -X '!*.@(rm?(j)|ra?(m)|smi?(l))' realplay
complete -f -X '!*.@(mpg|mpeg|avi|mov|qt)' xanim complete -f -X '!*.@(mpg|mpeg|avi|mov|qt)' xanim
complete -f -X '!*.@(ogg|OGG|m3u|flac|spx)' ogg123 complete -f -X '!*.@(ogg|m3u|flac|spx)' ogg123
complete -f -X '!*.@(mp3|MP3|ogg|OGG|pls|m3u)' gqmpeg freeamp complete -f -X '!*.@(mp3|ogg|pls|m3u)' gqmpeg freeamp
complete -f -X '!*.fig' xfig complete -f -X '!*.fig' xfig
complete -f -X '!*.@(mid?(i)|MID?(I)|cmf|CMF)' playmidi complete -f -X '!*.@(mid?(i)|cmf)' playmidi
complete -f -X '!*.@(mid?(i)|MID?(I)|rmi|RMI|rcp|RCP|[gr]36|[GR]36|g18|G18|mod|MOD|xm|XM|it|IT|x3m|X3M|s[3t]m|S[3T]M|kar|KAR)' timidity complete -f -X '!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)' timidity
complete -f -X '!*.@(m[eo]d|M[EO]D|s[3t]m|S[3T]M|xm|XM|it|IT)' modplugplay modplug123 complete -f -X '!*.@(m[eo]d|s[3t]m|xm|it)' modplugplay modplug123
complete -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite complete -f -X '*.@(o|so|so.!(conf)|a|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite
complete -f -X '!*.@([eE][xX][eE]?(.[sS][oO])|[cC][oO][mM]|[sS][cC][rR])' wine complete -f -X '!*.@([eE][xX][eE]?(.[sS][oO])|[cC][oO][mM]|[sS][cC][rR])' wine
complete -f -X '!*.@(zip|ZIP|z|Z|gz|GZ|tgz|TGZ)' bzme complete -f -X '!*.@(zip|z|gz|tgz)' bzme
# konqueror not here on purpose, it's more than a web/html browser # konqueror not here on purpose, it's more than a web/html browser
complete -f -X '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx opera galeon dillo elinks amaya firefox mozilla-firefox iceweasel google-chrome chromium-browser epiphany complete -f -X '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx opera galeon dillo elinks amaya firefox mozilla-firefox iceweasel google-chrome chromium-browser epiphany
complete -f -X '!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|odt|ott|odm)' oowriter complete -f -X '!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|odt|ott|odm)' oowriter
@ -114,14 +113,13 @@ complete -f -X '!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|ods|ots)' oocalc
complete -f -X '!*.@(sxd|std|sda|sdd|odg|otg)' oodraw complete -f -X '!*.@(sxd|std|sda|sdd|odg|otg)' oodraw
complete -f -X '!*.@(sxm|smf|mml|odf)' oomath complete -f -X '!*.@(sxm|smf|mml|odf)' oomath
complete -f -X '!*.odb' oobase complete -f -X '!*.odb' oobase
complete -f -X '!*.rpm' rpm2cpio complete -f -X '!*.[rs]pm' rpm2cpio
complete -f -X '!*.aux' bibtex complete -f -X '!*.aux' bibtex
complete -f -X '!*.po' poedit gtranslator kbabel lokalize complete -f -X '!*.po' poedit gtranslator kbabel lokalize
complete -f -X '!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])' harbour gharbour hbpp complete -f -X '!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])' harbour gharbour hbpp
complete -f -X '!*.[Hh][Rr][Bb]' hbrun complete -f -X '!*.[Hh][Rr][Bb]' hbrun
complete -f -X '!*.ly' lilypond ly2dvi complete -f -X '!*.ly' lilypond ly2dvi
complete -f -X '!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))' cdiff complete -f -X '!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))' cdiff
complete -f -X '!*.@(dif?(f)|?(d)patch)' kompare
complete -f -X '!*.lyx' lyx complete -f -X '!*.lyx' lyx
# FINISH exclude -- do not remove this line # FINISH exclude -- do not remove this line
@ -310,7 +308,7 @@ __reassemble_comp_words_by_ref() {
ref="$2[$j]" ref="$2[$j]"
eval $2[$j]=\${!ref}\${COMP_WORDS[i]} eval $2[$j]=\${!ref}\${COMP_WORDS[i]}
# Indicate new cword # Indicate new cword
[[ $i == $COMP_CWORD && ${COMP_WORDS[i]} ]] && eval $3=$j [[ $i == $COMP_CWORD ]] && eval $3=$j
done done
else else
# No, list of word completions separators hasn't changed; # No, list of word completions separators hasn't changed;
@ -612,11 +610,12 @@ _quote_readline_by_ref()
# This function performs file and directory completion. It's better than # This function performs file and directory completion. It's better than
# simply using 'compgen -f', because it honours spaces in filenames. # simply using 'compgen -f', because it honours spaces in filenames.
# @param $1 If `-d', complete only on directories. Otherwise filter/pick only # @param $1 If `-d', complete only on directories. Otherwise filter/pick only
# completions with `.$1' as file extension. # completions with `.$1' and the uppercase version of it as file
# extension.
# #
_filedir() _filedir()
{ {
local i IFS=$'\t\n' xspec local i IFS=$'\n' xspec
_tilde "$cur" || return 0 _tilde "$cur" || return 0
@ -638,47 +637,16 @@ _filedir()
)) ))
if [[ "$1" != -d ]]; then if [[ "$1" != -d ]]; then
xspec=${1:+"!*.$1"} # Munge xspec to contain uppercase version too
[[ ${BASH_VERSINFO[0]} -ge 4 ]] && \
xspec=${1:+"!*.@($1|${1^^})"} || \
xspec=${1:+"!*.@($1|$(printf %s $1 | tr '[:lower:]' '[:upper:]'))"}
toks=( ${toks[@]-} $( compgen -f -X "$xspec" -- $quoted) ) toks=( ${toks[@]-} $( compgen -f -X "$xspec" -- $quoted) )
if [ ${#toks[@]} -ne 0 ]; then if [ ${#toks[@]} -ne 0 ]; then
# If `compopt' is available, set `-o filenames' # Turn on -o filenames; see http://bugs.debian.org/272660#64 for
type compopt &>/dev/null && compopt -o filenames || # info about the compgen hack (bash < 4)
# No, `compopt' isn't available; compopt -o filenames 2>/dev/null || \
# Is `-o filenames' set? compgen -f /non-existing-dir/ >/dev/null
[[ (
${COMP_WORDS[0]} &&
"$(complete -p ${COMP_WORDS[0]})" == *"-o filenames"*
) ]] || {
# No, `-o filenames' isn't set;
# Emulate `-o filenames'
# NOTE: A side-effect of emulating `-o filenames' is that
# backslash escape characters are visible within the list
# of presented completions, e.g. the completions look
# like:
#
# $ foo a<TAB>
# a\ b/ a\$b/
#
# whereas with `-o filenames' active the completions look
# like:
#
# $ ls a<TAB>
# a b/ a$b/
#
for ((i=0; i < ${#toks[@]}; i++)); do
# If directory exists, append slash (/)
if [[ ${cur:0:1} != "'" ]]; then
[[ -d ${toks[i]} ]] && toks[i]="${toks[i]}"/
if [[ ${cur:0:1} == '"' ]]; then
toks[i]=${toks[i]//\\/\\\\}
toks[i]=${toks[i]//\"/\\\"}
toks[i]=${toks[i]//\$/\\\$}
else
toks[i]=$(printf %q ${toks[i]})
fi
fi
done
}
fi fi
fi fi
@ -703,13 +671,13 @@ _split_longopt()
return 1 return 1
} }
# This function tries to parse the output of $command --help # This function tries to parse the help output of the given command.
# @param $1 command
# @param $2 command options (default: --help)
# #
_parse_help() { _parse_help() {
local cmd $1 ${2:---help} 2>&1 | sed -e '/^[[:space:]]*-/!d' -e 's|[,/]| |g' | \
cmd=$1 awk '{ print $1; if ($2 ~ /^-/) { print $2 } }' | sed -e 's|=.*||'
$cmd --help 2>&1 | command grep -- "^[[:space:]]*-" | tr "," " " | \
awk '{print $1; if ($2 ~ /-.*/) { print $2 } }' | sed -e "s:=.*::g"
} }
# This function completes on signal names # This function completes on signal names
@ -1276,16 +1244,16 @@ _known_hosts_real()
awkcur=${awkcur//\./\\\.} awkcur=${awkcur//\./\\\.}
curd=$awkcur curd=$awkcur
if [[ "$awkcur" == [0-9]*.* ]]; then if [[ "$awkcur" == [0-9]*[.:]* ]]; then
# Digits followed by a dot - just search for that # Digits followed by a dot or a colon - just search for that
awkcur="^$awkcur.*" awkcur="^$awkcur[.:]*"
elif [[ "$awkcur" == [0-9]* ]]; then elif [[ "$awkcur" == [0-9]* ]]; then
# Digits followed by no dot - search for digits followed # Digits followed by no dot or colon - search for digits followed
# by a dot # by a dot or a colon
awkcur="^$awkcur.*\." awkcur="^$awkcur.*[.:]"
elif [ -z "$awkcur" ]; then elif [ -z "$awkcur" ]; then
# A blank - search for a dot or an alpha character # A blank - search for a dot, a colon, or an alpha character
awkcur="[a-z.]" awkcur="[a-z.:]"
else else
awkcur="^$awkcur" awkcur="^$awkcur"
fi fi
@ -1294,9 +1262,8 @@ _known_hosts_real()
# FS needs to look for a comma separated list # FS needs to look for a comma separated list
COMPREPLY=( "${COMPREPLY[@]}" $( awk 'BEGIN {FS=","} COMPREPLY=( "${COMPREPLY[@]}" $( awk 'BEGIN {FS=","}
/^\s*[^|\#]/ {for (i=1; i<=2; ++i) { \ /^\s*[^|\#]/ {for (i=1; i<=2; ++i) { \
gsub(" .*$", "", $i); \ sub(" .*$", "", $i); \
gsub("[\\[\\]]", "", $i); \ sub("^\\[", "", $i); sub("\\](:[0-9]+)?$", "", $i); \
gsub(":[0-9]+$", "", $i); \
if ($i ~ /'"$awkcur"'/) {print $i} \ if ($i ~ /'"$awkcur"'/) {print $i} \
}}' "${kh[@]}" 2>/dev/null ) ) }}' "${kh[@]}" 2>/dev/null ) )
fi fi
@ -1359,7 +1326,7 @@ complete -F _known_hosts traceroute traceroute6 tracepath tracepath6 ping \
# #
_cd() _cd()
{ {
local cur IFS=$'\t\n' i j k local cur IFS=$'\n' i j k
_get_comp_words_by_ref cur _get_comp_words_by_ref cur
# try to allow variable completion # try to allow variable completion
@ -1368,8 +1335,10 @@ _cd()
return 0 return 0
fi fi
# Enable -o filenames option, see Debian bug #272660 # Turn on -o filenames; see http://bugs.debian.org/272660#64 for
compgen -f /non-existing-dir/ >/dev/null # info about the compgen hack (bash < 4)
compopt -o filenames 2>/dev/null || \
compgen -f /non-existing-dir/ >/dev/null
# Use standard dir completion if no CDPATH or parameter starts with /, # Use standard dir completion if no CDPATH or parameter starts with /,
# ./ or ../ # ./ or ../
@ -1382,7 +1351,7 @@ _cd()
local -r mark_symdirs=$(_rl_enabled mark-symlinked-directories && echo y) local -r mark_symdirs=$(_rl_enabled mark-symlinked-directories && echo y)
# we have a CDPATH, so loop on its contents # we have a CDPATH, so loop on its contents
for i in ${CDPATH//:/$'\t'}; do for i in ${CDPATH//:/$'\n'}; do
# create an array of matched subdirs # create an array of matched subdirs
k="${#COMPREPLY[@]}" k="${#COMPREPLY[@]}"
for j in $( compgen -d $i/$cur ); do for j in $( compgen -d $i/$cur ); do
@ -1562,7 +1531,7 @@ _filedir_xspec()
{ {
local IFS cur xspec local IFS cur xspec
IFS=$'\t\n' IFS=$'\n'
COMPREPLY=() COMPREPLY=()
_get_comp_words_by_ref cur _get_comp_words_by_ref cur
@ -1587,8 +1556,19 @@ _filedir_xspec()
} }
)) ))
# Munge xspec to contain uppercase version too
eval xspec="${xspec}"
local matchop=!
if [[ $xspec == !* ]]; then
xspec=${xspec#!}
matchop=@
fi
[[ ${BASH_VERSINFO[0]} -ge 4 ]] && \
xspec="$matchop($xspec|${xspec^^})" || \
xspec="$matchop($xspec|$(printf %s $xspec | tr '[:lower:]' '[:upper:]'))"
toks=( ${toks[@]-} $( toks=( ${toks[@]-} $(
eval compgen -f -X "$xspec" -- "\$(quote_readline "\$cur")" | { eval compgen -f -X "!$xspec" -- "\$(quote_readline "\$cur")" | {
while read -r tmp; do while read -r tmp; do
[ -n $tmp ] && printf '%s\n' $tmp [ -n $tmp ] && printf '%s\n' $tmp
done done
@ -1625,8 +1605,8 @@ if [[ -d $BASH_COMPLETION_COMPAT_DIR && -r $BASH_COMPLETION_COMPAT_DIR && \
-x $BASH_COMPLETION_COMPAT_DIR ]]; then -x $BASH_COMPLETION_COMPAT_DIR ]]; then
for i in $(LC_ALL=C command ls "$BASH_COMPLETION_COMPAT_DIR"); do for i in $(LC_ALL=C command ls "$BASH_COMPLETION_COMPAT_DIR"); do
i=$BASH_COMPLETION_COMPAT_DIR/$i i=$BASH_COMPLETION_COMPAT_DIR/$i
[[ ${i##*/} != @(*~|*.bak|*.swp|\#*\#|*.dpkg*|*.rpm@(orig|new|save)) \ [[ ${i##*/} != @(*~|*.bak|*.swp|\#*\#|*.dpkg*|*.rpm@(orig|new|save)|Makefile*) \
&& ( -f $i || -h $i ) && -r $i ]] && . "$i" && -f $i && -r $i ]] && . "$i"
done done
fi fi
if [[ $BASH_COMPLETION_DIR != $BASH_COMPLETION_COMPAT_DIR && \ if [[ $BASH_COMPLETION_DIR != $BASH_COMPLETION_COMPAT_DIR && \
@ -1634,8 +1614,8 @@ if [[ $BASH_COMPLETION_DIR != $BASH_COMPLETION_COMPAT_DIR && \
-x $BASH_COMPLETION_DIR ]]; then -x $BASH_COMPLETION_DIR ]]; then
for i in $(LC_ALL=C command ls "$BASH_COMPLETION_DIR"); do for i in $(LC_ALL=C command ls "$BASH_COMPLETION_DIR"); do
i=$BASH_COMPLETION_DIR/$i i=$BASH_COMPLETION_DIR/$i
[[ ${i##*/} != @(*~|*.bak|*.swp|\#*\#|*.dpkg*|*.rpm@(orig|new|save)) \ [[ ${i##*/} != @(*~|*.bak|*.swp|\#*\#|*.dpkg*|*.rpm@(orig|new|save)|Makefile*) \
&& ( -f $i || -h $i ) && -r $i ]] && . "$i" && -f $i && -r $i ]] && . "$i"
done done
fi fi
unset i unset i

176
completions/Makefile.am Normal file
View File

@ -0,0 +1,176 @@
bashcomp_DATA = abook \
ant \
apache2ctl \
apt \
apt-build \
aptitude \
aspell \
autorpm \
bash-builtins \
bind-utils \
bitkeeper \
bittorrent \
bluez \
brctl \
bzip2 \
cardctl \
cfengine \
chkconfig \
chsh \
cksfv \
clisp \
configure \
coreutils \
cowsay \
cpan2dist \
cpio \
crontab \
cups \
cryptsetup \
cvs \
cvsps \
dd \
dhclient \
dict \
dpkg \
dselect \
dsniff \
e2fsprogs \
findutils \
freeciv \
freerdp \
fuse \
gcc \
gcl \
gdb \
genisoimage \
getent \
gkrellm \
gnatmake \
gpg \
gpg2 \
gzip \
heimdal \
hping2 \
iconv \
iftop \
ifupdown \
imagemagick \
info \
iptables \
ipmitool \
ipsec \
ipv6calc \
isql \
jar \
java \
k3b \
kldload \
larch \
ldapvi \
lftp \
lilo \
links \
lintian \
lisp \
lrzip \
lvm \
lzma \
lzop \
mailman \
make \
man \
mc \
mcrypt \
mdadm \
medusa \
minicom \
mkinitrd \
module-init-tools \
monodevelop \
mount \
mplayer \
msynctool \
mtx \
munin-node \
mutt \
mysqladmin \
ncftp \
net-tools \
nmap \
ntpdate \
openldap \
openssl \
p4 \
perl \
pine \
pkg-config \
pkg_install \
pkgtools \
pm-utils \
portupgrade \
postfix \
postgresql \
povray \
procps \
python \
qdbus \
qemu \
quota-tools \
rcs \
rdesktop \
reportbug \
resolvconf \
rfkill \
ri \
rpcdebug \
rpm \
rpmcheck \
rrdtool \
rsync \
rtcwake \
samba \
sbcl \
screen \
service \
sh \
shadow \
sitecopy \
smartctl \
snownews \
sqlite3 \
ssh \
sshfs \
strace \
svk \
sysbench \
sysctl \
sysv-rc \
tar \
tcpdump \
unace \
unrar \
update-alternatives \
util-linux \
vncviewer \
vpnc \
wireless-tools \
wodim \
wol \
wtf \
wvdial \
xhost \
xm \
xmllint \
xmlwf \
xmms \
xmodmap \
xrandr \
xrdb \
xsltproc \
xz \
yp-tools \
yum-arch
EXTRA_DIST = $(bashcomp_DATA) \
_mock _modules _subversion _yum _yum-utils

View File

@ -72,7 +72,7 @@ _mock()
--sources --verbose --quiet --trace --enable-plugin \ --sources --verbose --quiet --trace --enable-plugin \
--disable-plugin --print-root-path' -- "$cur" ) ) --disable-plugin --print-root-path' -- "$cur" ) )
else else
_filedir '?(no)src.rpm' _filedir '@(?(no)src.r|s)pm'
fi fi
} && } &&
complete -F _mock -o filenames mock complete -F _mock -o filenames mock

View File

@ -85,10 +85,9 @@ _complete()
;; ;;
-A) -A)
COMPREPLY=( $( compgen -W 'alias arrayvar binding \ COMPREPLY=( $( compgen -W 'alias arrayvar binding builtin command \
builtin command directory disabled enabled \ directory disabled enabled export file function group \
export file function group helptopic hostname \ helptopic hostname job keyword running service setopt shopt \
job keyword running service setopt shopt \
signal stopped user variable' -- "$cur" ) ) signal stopped user variable' -- "$cur" ) )
return 0 return 0
;; ;;
@ -111,13 +110,14 @@ _complete()
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
# relevant options completion # relevant options completion
COMPREPLY=( $( compgen -W '-a -b -c -d -e -f -g -j -k -o -s -v -u -A \ local opts="-a -b -c -d -e -f -g -j -k -o -s -u -v -A -G -W -P -S -X"
-G -W -P -S -X -F -C' -- "$cur" ) ) [[ $1 != compgen ]] && opts="$opts -F -C"
COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) )
else else
COMPREPLY=( $( compgen -A command -- "$cur" ) ) COMPREPLY=( $( compgen -A command -- "$cur" ) )
fi fi
} }
complete -F _complete complete complete -F _complete compgen complete
# Local variables: # Local variables:
# mode: shell-script # mode: shell-script

View File

@ -21,7 +21,7 @@ _bzip2()
return 0 return 0
fi fi
local IFS=$'\t\n' local IFS=$'\n'
xspec="*.bz2" xspec="*.bz2"
if [[ "$prev" == --* ]]; then if [[ "$prev" == --* ]]; then

179
completions/e2fsprogs Normal file
View File

@ -0,0 +1,179 @@
# bash completion for e2fsprogs
have badblocks &&
_badblocks()
{
COMPREPLY=()
local cur prev
_get_comp_words_by_ref cur prev
case $prev in
-b|-c|-e|-d|-p|-t)
return 0
;;
-i|-o)
_filedir
return 0
;;
esac
if [[ "$cur" == -* ]]; then
# -w (dangerous) and -X (internal use) not here on purpose
COMPREPLY=( $( compgen -W '-b -c -e -d -f -i -n -o -p -s -t -v' \
-- "$cur" ) )
return 0
fi
cur=${cur:=/dev/}
_filedir
} &&
complete -F _badblocks -o filenames badblocks
have dumpe2fs &&
_dumpe2fs()
{
COMPREPLY=()
local cur prev
_get_comp_words_by_ref cur prev
case $prev in
-o|-V)
return 0
;;
-i)
_filedir
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-b -o -f -h -i -x -V' -- "$cur" ) )
return 0
fi
cur=${cur:=/dev/}
_filedir
} &&
complete -F _dumpe2fs -o filenames dumpe2fs
have e2freefrag &&
_e2freefrag()
{
COMPREPLY=()
local cur prev
_get_comp_words_by_ref cur prev
case $prev in
-c|-h)
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-c -h' -- "$cur" ) )
return 0
fi
cur=${cur:=/dev/}
_filedir
} &&
complete -F _e2freefrag -o filenames e2freefrag
have e2label &&
_e2label()
{
COMPREPLY=()
local cur cword
_get_comp_words_by_ref cur cword
if [ $cword -eq 1 ]; then
cur=${cur:=/dev/}
_filedir
fi
} &&
complete -F _e2label -o filenames e2label
have filefrag &&
_filefrag()
{
COMPREPLY=()
local cur
_get_comp_words_by_ref cur
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-B -b -s -v -x' -- "$cur" ) )
return 0
fi
_filedir
} &&
complete -F _filefrag -o filenames filefrag
have tune2fs &&
_tune2fs()
{
COMPREPLY=()
local cur prev
_get_comp_words_by_ref cur prev
case $prev in
-c|-C|-E|-i|-J|-L|-m|-r|-T)
return 0
;;
-e)
COMPREPLY=( $( compgen -W 'continue remount-ro panic' -- "$cur" ) )
return 0
;;
-g)
_gids
COMPREPLY=( $( compgen -g -W '${COMPREPLY[@]}' -- "$cur" ) )
return 0
;;
-M)
_filedir -d
;;
-o)
local -a opts=(^debug ^bsdgroups ^user_xattr ^acl ^uid16
^journal_data ^journal_data_ordered ^journal_data_writeback)
COMPREPLY=( $( compgen -W '${opts[@]} ${opts[@]#^}' -- "$cur" ) )
return 0
;;
-O)
local -a opts=(^dir_index ^filetype ^flex_bg ^has_journal
^large_file ^resize_inode ^sparse_super ^uninit_bg)
COMPREPLY=( $( compgen -W '${opts[@]} ${opts[@]#^}' -- "$cur" ) )
return 0
;;
-u)
_uids
COMPREPLY=( $( compgen -u -W '${COMPREPLY[@]}' -- "$cur" ) )
return 0
;;
-U)
COMPREPLY=( $( compgen -W 'clear random time' -- "$cur" ) )
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-c -C -e -E -f -g -i -j -J -l -L -m -M -o
-O -r -T -u -U' -- "$cur" ) )
fi
cur=${cur:=/dev/}
_filedir
} &&
complete -F _tune2fs -o filenames tune2fs
# 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

47
completions/freerdp Normal file
View File

@ -0,0 +1,47 @@
# bash completion for xfreerdp
have xfreerdp &&
_xfreerdp()
{
local cur prev
COMPREPLY=()
_get_comp_words_by_ref cur prev
case $prev in
-k)
COMPREPLY=( $( compgen -W "$(xfreerdp --kbd-list | \
awk '/^0x/ {print $1}')" -- "$cur" ) )
return 0
;;
-a)
COMPREPLY=( $( compgen -W '8 15 16 24 32' -- "$cur" ) )
return 0
;;
-x)
COMPREPLY=( $( compgen -W 'b broadband m modem l lan' -- $cur ) )
return 0
;;
--plugin)
COMPREPLY=( $( compgen -W 'cliprdr rdpsnd rdpdr' -- "$cur" ) )
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-u -d -s -c -p -n -t -g -a -z -f -x -O -o \
-k --kbd-list -h --plugin --data' -- "$cur" ) )
else
_known_hosts_real "$cur"
fi
} &&
complete -F _xfreerdp xfreerdp
# 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

View File

@ -21,7 +21,7 @@ _gzip()
return 0 return 0
fi fi
local IFS=$'\t\n' local IFS=$'\n'
xspec="*.@(gz|t[ag]z)" xspec="*.@(gz|t[ag]z)"
if [[ "$prev" == --* ]]; then if [[ "$prev" == --* ]]; then

35
completions/iftop Normal file
View File

@ -0,0 +1,35 @@
# iftop(8) completion
have iftop &&
_iftop()
{
COMPREPLY=()
local cur prev
_get_comp_words_by_ref cur prev
case $prev in
-h|-f|-F|-m)
return 0
;;
-i)
_available_interfaces -a
return 0
;;
-c)
_filedir
return 0
;;
esac
COMPREPLY=( $( compgen -W '-h -n -N -p -P -b -B -i -f -F -c -m' \
-- "$cur" ) )
} &&
complete -F _iftop -o filenames iftop
# 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

214
completions/ipmitool Normal file
View File

@ -0,0 +1,214 @@
# bash completion for ipmitool
have ipmitool && {
_ipmitool_singleline_help()
{
COMPREPLY=( $( compgen -W "$( $1 $2 2>&1 | \
sed -ne 's/[,\r]//g' -e 's/^.*[Cc]ommands://p' )" -- "$cur" ) )
}
_ipmitool()
{
local cur prev
COMPREPLY=()
_get_comp_words_by_ref cur prev
case $prev in
-h|-V|-p|-U|-e|-k|-y|-P|-m|-b|-t|-B|-T|-l)
return 0
;;
-d)
COMPREPLY=( $( compgen -W "$( \
command ls -d /dev/ipmi* /dev/ipmi/* /dev/ipmidev/* \
2>/dev/null | sed -ne 's/^[^0-9]*\([0-9]\{1,\}\)/\1/p' )" \
-- "$cur" ) )
return 0
;;
-I)
COMPREPLY=( $( compgen -W "$( $1 -h 2>&1 | \
sed -e '/^Interfaces:/,/^[[:space:]]*$/!d' \
-ne 's/^[[:space:]]\{1,\}\([^[:space:]]\{1,\}\).*/\1/p' )" \
-- "$cur" ) )
return 0
;;
-H)
_known_hosts_real "$cur"
return 0
;;
-f|-S|-O)
_filedir
return 0
;;
-C)
COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14' \
-- "$cur" ) )
return 0
;;
-L)
COMPREPLY=( $( compgen -W 'CALLBACK USER OPERATOR ADMINISTRATOR' \
-- "$cur" ) )
return 0
;;
-A)
COMPREPLY=( $( compgen -W 'NONE PASSWORD MD2 MD5 OEM' -- "$cur" ) )
return 0
;;
-o)
COMPREPLY=( $( compgen -W "$( $1 -o list 2>&1 | \
awk '/^[ \t]+/ { print $1 }' ) list" -- "$cur" ) )
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-h -V -v -c -d -I -H -p -U -f -S -a \
-e -C -k -y -L -A -P -E -K -m -b -t -B -T -l -o -O' -- "$cur" ) )
return 0
fi
# Find out command and subcommand
local cmds=( raw i2c spd lan chassis power event mc sdr sensor fru gendev
sel pef sol tsol isol user channel session sunoem kontronoem picmg fwum
firewall shell exec set hpm ekanalyzer)
local i c cmd subcmd
for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do
[[ -n $cmd ]] && subcmd=${COMP_WORDS[i]} && break
for c in ${cmds[@]}; do
[ ${COMP_WORDS[i]} = $c ] && cmd=$c && break
done
done
if [ -z "$cmd" ]; then
COMPREPLY=( $( compgen -W '${cmds[@]}' -- "$cur" ) )
return 0
fi
# Command/subcommand completions
case $cmd in
shell)
;;
exec)
_filedir
;;
chassis|power|kontronoem|fwum)
_ipmitool_singleline_help $1 $cmd
;;
lan)
case $subcmd in
print|set)
;;
alert)
[ "$prev" = alert ] && \
COMPREPLY=( $( compgen -W 'print set' -- "$cur" ) )
;;
stats)
[ "$prev" = stats ] && \
COMPREPLY=( $( compgen -W 'print set' -- "$cur" ) )
;;
*)
COMPREPLY=( $( compgen -W 'print set alert stats' \
-- "$cur" ) )
;;
esac
;;
sdr)
case $subcmd in
get|info|type|list|entity)
;;
elist)
COMPREPLY=( $( compgen -W 'all full compact event mclog fru
generic' -- "$cur" ) )
;;
dump)
_filedir
;;
fill)
case $prev in
fill)
COMPREPLY=( $( compgen -W 'sensors file' \
-- "$cur" ) )
;;
file)
_filedir
;;
esac
;;
*)
COMPREPLY=( $( compgen -W 'get info type list elist entity
dump fill' -- "$cur" ) )
;;
esac
;;
sensor)
case $subcmd in
list|get|thresh)
;;
*)
COMPREPLY=( $( compgen -W 'list get thresh' -- "$cur" ) )
;;
esac
;;
sel)
case $subcmd in
info|clear|list|elist|delete)
;;
add|save|writeraw|readraw)
_filedir
;;
time)
[ "$prev" = time ] && \
COMPREPLY=( $( compgen -W 'get set' -- "$cur" ) )
;;
*)
COMPREPLY=( $( compgen -W 'info clear list elist delete add
get save writeraw readraw time' -- "$cur" ) )
;;
esac
;;
user)
case $subcmd in
summary|list|disable|enable|priv|test)
;;
set)
[ "$prev" = set ] && \
COMPREPLY=( $( compgen -W 'name password' -- "$cur" ) )
;;
*)
COMPREPLY=( $( compgen -W 'summary list set disable enable
priv test' -- "$cur" ) )
;;
esac
;;
set)
[ "$prev" = set ] && \
COMPREPLY=( $( compgen -W 'hostname username password privlvl
authtype localaddr targetaddr port csv verbose' \
-- "$cur" ) )
;;
esac
}
} &&
complete -F _ipmitool -o filenames ipmitool
# 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

View File

@ -18,7 +18,7 @@ _jar()
_filedir _filedir
;; ;;
*f) *f)
_filedir '?([ejw]ar|zip|[EJW]AR|ZIP)' _filedir '@([ejw]ar|zip)'
;; ;;
*) *)
_filedir _filedir

View File

@ -48,7 +48,7 @@ _lrzip()
_expand || return 0 _expand || return 0
local IFS=$'\t\n' local IFS=$'\n'
COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \
$( compgen -d -- "$cur" ) ) $( compgen -d -- "$cur" ) )
} && } &&

View File

@ -16,7 +16,7 @@ _lzma()
return 0 return 0
fi fi
local IFS=$'\t\n' local IFS=$'\n'
xspec="*.@(lzma|tlz)" xspec="*.@(lzma|tlz)"
if [[ "$prev" == --* ]]; then if [[ "$prev" == --* ]]; then

View File

@ -53,7 +53,7 @@ _lzop()
_expand || return 0 _expand || return 0
local IFS=$'\t\n' local IFS=$'\n'
COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \
$( compgen -d -- "$cur" ) ) $( compgen -d -- "$cur" ) )
} && } &&

View File

@ -58,12 +58,12 @@ _mcrypt()
--list-hash --verbose --quiet --help \ --list-hash --verbose --quiet --help \
--version --license' -- "$cur" ) ) --version --license' -- "$cur" ) )
elif [[ ${COMP_WORDS[0]} == mdecrypt ]]; then elif [[ ${COMP_WORDS[0]} == mdecrypt ]]; then
_filedir '@(nc)' _filedir nc
else else
decrypt=0 decrypt=0
for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do
if [[ ${COMP_WORDS[i]} == -@(d|-decrypt) ]]; then if [[ ${COMP_WORDS[i]} == -@(d|-decrypt) ]]; then
_filedir '@(nc)' _filedir nc
decrypt=1 decrypt=1
break break
fi fi

Some files were not shown because too many files have changed in this diff Show More