diff options
Diffstat (limited to 'completions')
359 files changed, 10400 insertions, 9356 deletions
diff --git a/completions/Makefile.am b/completions/Makefile.am index 38cd986d..21201925 100644 --- a/completions/Makefile.am +++ b/completions/Makefile.am @@ -1,171 +1,315 @@ -SUBDIRS = helpers -bashcomp_DATA = abook \ +bashcompdir = $(pkgdatadir)/completions +bashcomp_DATA = a2x \ + abook \ + aclocal \ + add_members \ + alias \ ant \ apache2ctl \ - apt \ apt-build \ + apt-cache \ + apt-get \ aptitude \ + arch \ + arping \ + arpspoof \ + asciidoc \ aspell \ autoconf \ automake \ + autoreconf \ autorpm \ - bash-builtins \ - bind-utils \ - bitkeeper \ - bittorrent \ - bluez \ + autoscan \ + badblocks \ + bk \ brctl \ + btdownloadheadless.py \ bzip2 \ + cal \ + cancel \ cardctl \ - cfengine \ + cfagent \ + cfrun \ + chage \ + change_pw \ + check_db \ + check_perms \ + chgrp \ chkconfig \ + chown \ + chpasswd \ + chrpath \ chsh \ cksfv \ + cleanarch \ clisp \ + clone_member \ + complete \ + config_list \ configure \ - coreutils \ + convert \ cowsay \ cpan2dist \ cpio \ + cppcheck \ crontab \ - cups \ + curl \ cryptsetup \ cvs \ cvsps \ dd \ dhclient \ dict \ + dmesg \ + dot \ dpkg \ + dpkg-source \ dselect \ dsniff \ - dvd+rw-tools \ - e2fsprogs \ - findutils \ - freeciv \ - freerdp \ - fuse \ + dumpdb \ + dumpe2fs \ + e2freefrag \ + e2label \ + ether-wake \ + evince \ + explodepkg \ + export \ + faillog \ + fbgs \ + fbi \ + feh \ + file \ + filefrag \ + filesnarf \ + find \ + find_member \ + freeciv-gtk2 \ + freeciv-server \ + function \ + fusermount \ gcc \ gcl \ gdb \ + genaliases \ + gendiff \ genisoimage \ getent \ gkrellm \ gnatmake \ + gnome-mplayer \ + gpasswd \ gpg \ gpg2 \ + gprof \ + groupadd \ + groupdel \ + groupmems \ + groupmod \ + growisofs \ + grpck \ gzip \ - heimdal \ + hcitool \ + hddtemp \ + hid2hci \ hping2 \ + htpasswd \ iconv \ + idn \ iftop \ - ifupdown \ - imagemagick \ + ifup \ info \ + inject \ + insmod \ + installpkg \ + invoke-rc.d \ + ionice \ + ip \ iptables \ ipmitool \ - iproute2 \ ipsec \ ipv6calc \ + iscsiadm \ isql \ + iwconfig \ + iwlist \ + iwpriv \ + iwspy \ jar \ + jarsigner \ java \ + javaws \ + jps \ k3b \ + kcov \ + kill \ + killall \ kldload \ + kldunload \ + ktutil \ larch \ + lastlog \ + ldapsearch \ ldapvi \ lftp \ + lftpget \ lilo \ links \ lintian \ lisp \ + list_admins \ + list_lists \ + list_members \ + list_owners \ + look \ + lpq \ + lpr \ lrzip \ lsof \ lvm \ lzma \ lzop \ - mailman \ + macof \ + mailmanctl \ make \ + makepkg \ man \ mc \ mcrypt \ mdadm \ + mdtool \ medusa \ + mii-diag \ + mii-tool \ minicom \ mkinitrd \ - module-init-tools \ + mktemp \ + mmsitepass \ monodevelop \ mount \ mplayer \ msynctool \ mtx \ - munin-node \ + munindoc \ + munin-node-configure \ + munin-run \ + munin-update \ mutt \ + mysql \ mysqladmin \ ncftp \ - net-tools \ + newgrp \ + newlist \ + newusers \ nmap \ + nslookup \ ntpdate \ - openldap \ openssl \ - open-iscsi \ p4 \ + pack200 \ + passwd \ perl \ + pgrep \ pine \ + ping \ pkg-config \ - pkg_install \ - pkgtools \ - pm-utils \ + pkg_delete \ + pkgtool \ + pm-hibernate \ + pm-is-supported \ + pm-powersave \ + portinstall \ portupgrade \ + postcat \ + postconf \ postfix \ - postgresql \ + postmap \ + postsuper \ povray \ - procps \ + prelink \ + protoc \ + psql \ + puppet \ + pwck \ + pwdx \ + pwgen \ python \ qdbus \ qemu \ - quota-tools \ + qrunner \ + querybts \ + quota \ rcs \ rdesktop \ + remove_members \ + removepkg \ + renice \ + reptyr \ reportbug \ resolvconf \ rfkill \ ri \ + rmlist \ + rmmod \ + route \ rpcdebug \ rpm \ + rpm2tgz \ rpmcheck \ rrdtool \ rsync \ rtcwake \ - samba \ sbcl \ + sbopkg \ screen \ service \ sh \ - shadow \ sitecopy \ + slackpkg \ + slapt-get \ + slapt-src \ smartctl \ + smbclient \ snownews \ sqlite3 \ ssh \ + ssh-copy-id \ sshfs \ + sshmitm \ + sshow \ strace \ svk \ + sync_members \ sysbench \ sysctl \ - sysv-rc \ tar \ tcpdump \ + tcpkill \ + tcpnice \ + tracepath \ + tune2fs \ unace \ + unpack200 \ unrar \ + unshunt \ update-alternatives \ - util-linux \ + update-rc.d \ + upgradepkg \ + urlsnarf \ + useradd \ + userdel \ + usermod \ + vipw \ vncviewer \ vpnc \ - wireless-tools \ + watch \ + webmitm \ + withlist \ wodim \ wol \ wtf \ wvdial \ + xfreerdp \ + xgamma \ xhost \ xm \ xmllint \ @@ -176,8 +320,473 @@ bashcomp_DATA = abook \ xrdb \ xsltproc \ xz \ - yp-tools \ + xzdec \ + ypmatch \ yum-arch EXTRA_DIST = $(bashcomp_DATA) \ _mock _modules _subversion _yum _yum-utils + +CLEANFILES = \ + aclocal-1.11 \ + alpine \ + alternatives \ + animate \ + apropos \ + asciidoc.py \ + autoheader \ + automake-1.11 \ + autossh \ + autoupdate \ + btdownloadcurses.py \ + btdownloadgui.py \ + c++ \ + cc \ + cdrecord \ + ci \ + ciptool \ + civclient \ + civserver \ + co \ + compare \ + compgen \ + composite \ + conjure \ + cowthink \ + createdb \ + dcop \ + declare \ + dfutool \ + display \ + dpkg-deb \ + dpkg-query \ + dpkg-reconfigure \ + dropdb \ + edquota \ + filebucket \ + freeciv-sdl \ + freeciv-xaw \ + g++ \ + g4 \ + g77 \ + gcj \ + gkrellm2 \ + gmake \ + gmplayer \ + gnumake \ + gpc \ + hciattach \ + hciconfig \ + host \ + hping \ + hping3 \ + identify \ + ifdown \ + ifstatus \ + import \ + javac \ + javadoc \ + kplayer \ + l2ping \ + lbzip2 \ + ldapadd \ + ldapcompare \ + ldapdelete \ + ldapmodify \ + ldapmodrdn \ + ldappasswd \ + ldapwhoami \ + lintian-info \ + lvchange \ + lvcreate \ + lvdisplay \ + lvextend \ + lvmdiskscan \ + lvreduce \ + lvremove \ + lvrename \ + lvresize \ + lvs \ + lvscan \ + mailsnarf \ + mdecrypt \ + mencoder \ + mkisofs \ + modinfo \ + modprobe \ + mogrify \ + montage \ + mplayer2 \ + msgsnarf \ + muttng \ + ncal \ + pbzip2 \ + pccardctl \ + perldoc \ + phing \ + pidof \ + pigz \ + pinfo \ + ping6 \ + pkg_deinstall \ + pkg_info \ + pkill \ + pm-suspend \ + pm-suspend-hybrid \ + pmake \ + postalias \ + puppetca \ + puppetd \ + puppetdoc \ + puppetmasterd \ + puppetqd \ + puppetrun \ + pvchange \ + pvcreate \ + pvdisplay \ + pvmove \ + pvremove \ + pvs \ + pvscan \ + pxz \ + python2 \ + python3 \ + quotacheck \ + quotaoff \ + quotaon \ + ralsh \ + rcsdiff \ + rdict \ + repquota \ + rfcomm \ + rlog \ + rpm2targz \ + rpm2txz \ + rpmbuild \ + rpmbuild-md5 \ + sbcl-mt \ + scp \ + sdptool \ + setquota \ + sftp \ + slogin \ + smbcacls \ + smbcquotas \ + smbget \ + smbpasswd \ + smbtar \ + smbtree \ + spovray \ + stream \ + tightvncviewer \ + tracepath6 \ + typeset \ + umount \ + vgcfgbackup \ + vgcfgrestore \ + vgchange \ + vgck \ + vgconvert \ + vgdisplay \ + vgexport \ + vgextend \ + vgimport \ + vgmerge \ + vgmknodes \ + vgreduce \ + vgremove \ + vgrename \ + vgs \ + vgscan \ + vgsplit \ + vigr \ + whatis \ + xpovray \ + xvnc4viewer \ + ypcat + +symlinks: + for file in aclocal-1.11 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) aclocal $(targetdir)/$$file ; \ + done + for file in phing ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ant $(targetdir)/$$file ; \ + done + for file in asciidoc.py ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) asciidoc $(targetdir)/$$file ; \ + done + for file in automake-1.11 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) automake $(targetdir)/$$file ; \ + done + for file in autoheader ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) autoreconf $(targetdir)/$$file ; \ + done + for file in autoupdate ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) autoscan $(targetdir)/$$file ; \ + done + for file in btdownloadcurses.py btdownloadgui.py ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) btdownloadheadless.py $(targetdir)/$$file ; \ + done + for file in lbzip2 pbzip2 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) bzip2 $(targetdir)/$$file ; \ + done + for file in ncal ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) cal $(targetdir)/$$file ; \ + done + for file in pccardctl ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) cardctl $(targetdir)/$$file ; \ + done + for file in compgen ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) complete $(targetdir)/$$file ; \ + done + for file in mogrify display animate identify montage composite \ + compare conjure import stream ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) convert $(targetdir)/$$file ; \ + done + for file in cowthink ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) cowsay $(targetdir)/$$file ; \ + done + for file in rdict ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) dict $(targetdir)/$$file ; \ + done + for file in dpkg-deb dpkg-query dpkg-reconfigure ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) dpkg $(targetdir)/$$file ; \ + done + for file in mailsnarf msgsnarf ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) filesnarf $(targetdir)/$$file ; \ + done + for file in civclient freeciv-sdl freeciv-xaw ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) freeciv-gtk2 $(targetdir)/$$file ; \ + done + for file in civserver ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) freeciv-server $(targetdir)/$$file ; \ + done + for file in declare typeset ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) function $(targetdir)/$$file ; \ + done + for file in g++ c++ g77 gcj gpc cc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) gcc $(targetdir)/$$file ; \ + done + for file in mkisofs ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) genisoimage $(targetdir)/$$file ; \ + done + for file in gkrellm2 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) gkrellm $(targetdir)/$$file ; \ + done + for file in pigz ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) gzip $(targetdir)/$$file ; \ + done + for file in sdptool l2ping rfcomm ciptool dfutool hciconfig \ + hciattach ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) hcitool $(targetdir)/$$file ; \ + done + for file in hping hping3 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) hping2 $(targetdir)/$$file ; \ + done + for file in ifdown ifstatus ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ifup $(targetdir)/$$file ; \ + done + for file in pinfo ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) info $(targetdir)/$$file ; \ + done + for file in modprobe modinfo ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) insmod $(targetdir)/$$file ; \ + done + for file in javac javadoc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) java $(targetdir)/$$file ; \ + done + for file in pkill ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) killall $(targetdir)/$$file ; \ + done + for file in ldapadd ldapmodify ldapdelete ldapcompare ldapmodrdn \ + ldapwhoami ldappasswd ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ldapsearch $(targetdir)/$$file ; \ + done + for file in lintian-info ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) lintian $(targetdir)/$$file ; \ + done + for file in lvmdiskscan pvscan pvs pvdisplay pvchange pvcreate pvmove \ + pvremove vgscan vgs vgdisplay vgchange vgremove vgrename \ + vgreduce vgextend vgimport vgexport vgck vgconvert \ + vgcfgbackup vgcfgrestore vgmerge vgsplit vgmknodes lvscan lvs \ + lvdisplay lvchange lvcreate lvremove lvrename lvreduce \ + lvresize lvextend ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) lvm $(targetdir)/$$file ; \ + done + for file in gmake gnumake pmake ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) make $(targetdir)/$$file ; \ + done + for file in apropos whatis ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) man $(targetdir)/$$file ; \ + done + for file in mdecrypt ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mcrypt $(targetdir)/$$file ; \ + done + for file in umount ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mount $(targetdir)/$$file ; \ + done + for file in mplayer2 mencoder gmplayer kplayer ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mplayer $(targetdir)/$$file ; \ + done + for file in muttng ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mutt $(targetdir)/$$file ; \ + done + for file in host ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) nslookup $(targetdir)/$$file ; \ + done + for file in g4 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) p4 $(targetdir)/$$file ; \ + done + for file in perldoc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) perl $(targetdir)/$$file ; \ + done + for file in pidof ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pgrep $(targetdir)/$$file ; \ + done + for file in alpine ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pine $(targetdir)/$$file ; \ + done + for file in ping6 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ping $(targetdir)/$$file ; \ + done + for file in pkg_info pkg_deinstall ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pkg_delete $(targetdir)/$$file ; \ + done + for file in pm-suspend pm-suspend-hybrid ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pm-hibernate $(targetdir)/$$file ; \ + done + for file in createdb dropdb ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) psql $(targetdir)/$$file ; \ + done + for file in postalias ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) postmap $(targetdir)/$$file ; \ + done + for file in xpovray spovray ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) povray $(targetdir)/$$file ; \ + done + for file in puppetmasterd puppetd puppetca ralsh puppetrun puppetqd \ + filebucket puppetdoc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) puppet $(targetdir)/$$file ; \ + done + for file in python2 python3 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) python $(targetdir)/$$file ; \ + done + for file in dcop ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) qdbus $(targetdir)/$$file ; \ + done + for file in setquota edquota quotacheck repquota quotaon quotaoff ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) quota $(targetdir)/$$file ; \ + done + for file in ci co rlog rcsdiff ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) rcs $(targetdir)/$$file ; \ + done + for file in rpmbuild rpmbuild-md5 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) rpm $(targetdir)/$$file ; \ + done + for file in rpm2txz rpm2targz ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) rpm2tgz $(targetdir)/$$file ; \ + done + for file in smbget smbcacls smbcquotas smbpasswd smbtar smbtree ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) smbclient $(targetdir)/$$file ; \ + done + for file in sbcl-mt ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) sbcl $(targetdir)/$$file ; \ + done + for file in slogin autossh sftp scp ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ssh $(targetdir)/$$file ; \ + done + for file in tracepath6 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) tracepath $(targetdir)/$$file ; \ + done + for file in alternatives ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) update-alternatives $(targetdir)/$$file ; \ + done + for file in vigr ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) vipw $(targetdir)/$$file ; \ + done + for file in tightvncviewer xvnc4viewer ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) vncviewer $(targetdir)/$$file ; \ + done + for file in cdrecord ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) wodim $(targetdir)/$$file ; \ + done + for file in pxz ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) xz $(targetdir)/$$file ; \ + done + for file in ypcat ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ypmatch $(targetdir)/$$file ; \ + done +.PHONY: symlinks + +all-local: targetdir = . +all-local: symlinks + +install-data-local: targetdir = $(DESTDIR)$(bashcompdir) +install-data-local: symlinks diff --git a/completions/Makefile.in b/completions/Makefile.in index 04f41522..16d05310 100644 --- a/completions/Makefile.in +++ b/completions/Makefile.in @@ -43,13 +43,6 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -73,40 +66,7 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(bashcompdir)" DATA = $(bashcomp_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ @@ -125,6 +85,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ @@ -147,16 +108,15 @@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ -bashcompdir = @bashcompdir@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ +compatdir = @compatdir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -helpersdir = @helpersdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ @@ -181,174 +141,318 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = helpers -bashcomp_DATA = abook \ +bashcompdir = $(pkgdatadir)/completions +bashcomp_DATA = a2x \ + abook \ + aclocal \ + add_members \ + alias \ ant \ apache2ctl \ - apt \ apt-build \ + apt-cache \ + apt-get \ aptitude \ + arch \ + arping \ + arpspoof \ + asciidoc \ aspell \ autoconf \ automake \ + autoreconf \ autorpm \ - bash-builtins \ - bind-utils \ - bitkeeper \ - bittorrent \ - bluez \ + autoscan \ + badblocks \ + bk \ brctl \ + btdownloadheadless.py \ bzip2 \ + cal \ + cancel \ cardctl \ - cfengine \ + cfagent \ + cfrun \ + chage \ + change_pw \ + check_db \ + check_perms \ + chgrp \ chkconfig \ + chown \ + chpasswd \ + chrpath \ chsh \ cksfv \ + cleanarch \ clisp \ + clone_member \ + complete \ + config_list \ configure \ - coreutils \ + convert \ cowsay \ cpan2dist \ cpio \ + cppcheck \ crontab \ - cups \ + curl \ cryptsetup \ cvs \ cvsps \ dd \ dhclient \ dict \ + dmesg \ + dot \ dpkg \ + dpkg-source \ dselect \ dsniff \ - dvd+rw-tools \ - e2fsprogs \ - findutils \ - freeciv \ - freerdp \ - fuse \ + dumpdb \ + dumpe2fs \ + e2freefrag \ + e2label \ + ether-wake \ + evince \ + explodepkg \ + export \ + faillog \ + fbgs \ + fbi \ + feh \ + file \ + filefrag \ + filesnarf \ + find \ + find_member \ + freeciv-gtk2 \ + freeciv-server \ + function \ + fusermount \ gcc \ gcl \ gdb \ + genaliases \ + gendiff \ genisoimage \ getent \ gkrellm \ gnatmake \ + gnome-mplayer \ + gpasswd \ gpg \ gpg2 \ + gprof \ + groupadd \ + groupdel \ + groupmems \ + groupmod \ + growisofs \ + grpck \ gzip \ - heimdal \ + hcitool \ + hddtemp \ + hid2hci \ hping2 \ + htpasswd \ iconv \ + idn \ iftop \ - ifupdown \ - imagemagick \ + ifup \ info \ + inject \ + insmod \ + installpkg \ + invoke-rc.d \ + ionice \ + ip \ iptables \ ipmitool \ - iproute2 \ ipsec \ ipv6calc \ + iscsiadm \ isql \ + iwconfig \ + iwlist \ + iwpriv \ + iwspy \ jar \ + jarsigner \ java \ + javaws \ + jps \ k3b \ + kcov \ + kill \ + killall \ kldload \ + kldunload \ + ktutil \ larch \ + lastlog \ + ldapsearch \ ldapvi \ lftp \ + lftpget \ lilo \ links \ lintian \ lisp \ + list_admins \ + list_lists \ + list_members \ + list_owners \ + look \ + lpq \ + lpr \ lrzip \ lsof \ lvm \ lzma \ lzop \ - mailman \ + macof \ + mailmanctl \ make \ + makepkg \ man \ mc \ mcrypt \ mdadm \ + mdtool \ medusa \ + mii-diag \ + mii-tool \ minicom \ mkinitrd \ - module-init-tools \ + mktemp \ + mmsitepass \ monodevelop \ mount \ mplayer \ msynctool \ mtx \ - munin-node \ + munindoc \ + munin-node-configure \ + munin-run \ + munin-update \ mutt \ + mysql \ mysqladmin \ ncftp \ - net-tools \ + newgrp \ + newlist \ + newusers \ nmap \ + nslookup \ ntpdate \ - openldap \ openssl \ - open-iscsi \ p4 \ + pack200 \ + passwd \ perl \ + pgrep \ pine \ + ping \ pkg-config \ - pkg_install \ - pkgtools \ - pm-utils \ + pkg_delete \ + pkgtool \ + pm-hibernate \ + pm-is-supported \ + pm-powersave \ + portinstall \ portupgrade \ + postcat \ + postconf \ postfix \ - postgresql \ + postmap \ + postsuper \ povray \ - procps \ + prelink \ + protoc \ + psql \ + puppet \ + pwck \ + pwdx \ + pwgen \ python \ qdbus \ qemu \ - quota-tools \ + qrunner \ + querybts \ + quota \ rcs \ rdesktop \ + remove_members \ + removepkg \ + renice \ + reptyr \ reportbug \ resolvconf \ rfkill \ ri \ + rmlist \ + rmmod \ + route \ rpcdebug \ rpm \ + rpm2tgz \ rpmcheck \ rrdtool \ rsync \ rtcwake \ - samba \ sbcl \ + sbopkg \ screen \ service \ sh \ - shadow \ sitecopy \ + slackpkg \ + slapt-get \ + slapt-src \ smartctl \ + smbclient \ snownews \ sqlite3 \ ssh \ + ssh-copy-id \ sshfs \ + sshmitm \ + sshow \ strace \ svk \ + sync_members \ sysbench \ sysctl \ - sysv-rc \ tar \ tcpdump \ + tcpkill \ + tcpnice \ + tracepath \ + tune2fs \ unace \ + unpack200 \ unrar \ + unshunt \ update-alternatives \ - util-linux \ + update-rc.d \ + upgradepkg \ + urlsnarf \ + useradd \ + userdel \ + usermod \ + vipw \ vncviewer \ vpnc \ - wireless-tools \ + watch \ + webmitm \ + withlist \ wodim \ wol \ wtf \ wvdial \ + xfreerdp \ + xgamma \ xhost \ xm \ xmllint \ @@ -359,13 +463,192 @@ bashcomp_DATA = abook \ xrdb \ xsltproc \ xz \ - yp-tools \ + xzdec \ + ypmatch \ yum-arch EXTRA_DIST = $(bashcomp_DATA) \ _mock _modules _subversion _yum _yum-utils -all: all-recursive +CLEANFILES = \ + aclocal-1.11 \ + alpine \ + alternatives \ + animate \ + apropos \ + asciidoc.py \ + autoheader \ + automake-1.11 \ + autossh \ + autoupdate \ + btdownloadcurses.py \ + btdownloadgui.py \ + c++ \ + cc \ + cdrecord \ + ci \ + ciptool \ + civclient \ + civserver \ + co \ + compare \ + compgen \ + composite \ + conjure \ + cowthink \ + createdb \ + dcop \ + declare \ + dfutool \ + display \ + dpkg-deb \ + dpkg-query \ + dpkg-reconfigure \ + dropdb \ + edquota \ + filebucket \ + freeciv-sdl \ + freeciv-xaw \ + g++ \ + g4 \ + g77 \ + gcj \ + gkrellm2 \ + gmake \ + gmplayer \ + gnumake \ + gpc \ + hciattach \ + hciconfig \ + host \ + hping \ + hping3 \ + identify \ + ifdown \ + ifstatus \ + import \ + javac \ + javadoc \ + kplayer \ + l2ping \ + lbzip2 \ + ldapadd \ + ldapcompare \ + ldapdelete \ + ldapmodify \ + ldapmodrdn \ + ldappasswd \ + ldapwhoami \ + lintian-info \ + lvchange \ + lvcreate \ + lvdisplay \ + lvextend \ + lvmdiskscan \ + lvreduce \ + lvremove \ + lvrename \ + lvresize \ + lvs \ + lvscan \ + mailsnarf \ + mdecrypt \ + mencoder \ + mkisofs \ + modinfo \ + modprobe \ + mogrify \ + montage \ + mplayer2 \ + msgsnarf \ + muttng \ + ncal \ + pbzip2 \ + pccardctl \ + perldoc \ + phing \ + pidof \ + pigz \ + pinfo \ + ping6 \ + pkg_deinstall \ + pkg_info \ + pkill \ + pm-suspend \ + pm-suspend-hybrid \ + pmake \ + postalias \ + puppetca \ + puppetd \ + puppetdoc \ + puppetmasterd \ + puppetqd \ + puppetrun \ + pvchange \ + pvcreate \ + pvdisplay \ + pvmove \ + pvremove \ + pvs \ + pvscan \ + pxz \ + python2 \ + python3 \ + quotacheck \ + quotaoff \ + quotaon \ + ralsh \ + rcsdiff \ + rdict \ + repquota \ + rfcomm \ + rlog \ + rpm2targz \ + rpm2txz \ + rpmbuild \ + rpmbuild-md5 \ + sbcl-mt \ + scp \ + sdptool \ + setquota \ + sftp \ + slogin \ + smbcacls \ + smbcquotas \ + smbget \ + smbpasswd \ + smbtar \ + smbtree \ + spovray \ + stream \ + tightvncviewer \ + tracepath6 \ + typeset \ + umount \ + vgcfgbackup \ + vgcfgrestore \ + vgchange \ + vgck \ + vgconvert \ + vgdisplay \ + vgexport \ + vgextend \ + vgimport \ + vgmerge \ + vgmknodes \ + vgreduce \ + vgremove \ + vgrename \ + vgs \ + vgscan \ + vgsplit \ + vigr \ + whatis \ + xpovray \ + xvnc4viewer \ + ypcat + +all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @@ -418,141 +701,12 @@ uninstall-bashcompDATA: test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(bashcompdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bashcompdir)" && rm -f $$files - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique tags: TAGS +TAGS: -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +CTAGS: + distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -584,51 +738,22 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done check-am: all-am -check: check-recursive -all-am: Makefile $(DATA) -installdirs: installdirs-recursive -installdirs-am: +check: check-am +all-am: Makefile $(DATA) all-local +installdirs: for dir in "$(DESTDIR)$(bashcompdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -installcheck: installcheck-recursive +installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ @@ -637,6 +762,7 @@ install-strip: mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -645,90 +771,373 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive +clean: clean-am clean-am: clean-generic mostlyclean-am -distclean: distclean-recursive +distclean: distclean-am -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags +distclean-am: clean-am distclean-generic -dvi: dvi-recursive +dvi: dvi-am dvi-am: -html: html-recursive +html: html-am html-am: -info: info-recursive +info: info-am info-am: -install-data-am: install-bashcompDATA +install-data-am: install-bashcompDATA install-data-local -install-dvi: install-dvi-recursive +install-dvi: install-dvi-am install-dvi-am: install-exec-am: -install-html: install-html-recursive +install-html: install-html-am install-html-am: -install-info: install-info-recursive +install-info: install-info-am install-info-am: install-man: -install-pdf: install-pdf-recursive +install-pdf: install-pdf-am install-pdf-am: -install-ps: install-ps-recursive +install-ps: install-ps-am install-ps-am: installcheck-am: -maintainer-clean: maintainer-clean-recursive +maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-recursive +mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic -pdf: pdf-recursive +pdf: pdf-am pdf-am: -ps: ps-recursive +ps: ps-am ps-am: uninstall-am: uninstall-bashcompDATA -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic ctags \ - ctags-recursive distclean distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-bashcompDATA install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ +.MAKE: install-am install-strip + +.PHONY: all all-am all-local check check-am clean clean-generic \ + distclean distclean-generic distdir dvi dvi-am html html-am \ + info info-am install install-am install-bashcompDATA \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-bashcompDATA +symlinks: + for file in aclocal-1.11 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) aclocal $(targetdir)/$$file ; \ + done + for file in phing ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ant $(targetdir)/$$file ; \ + done + for file in asciidoc.py ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) asciidoc $(targetdir)/$$file ; \ + done + for file in automake-1.11 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) automake $(targetdir)/$$file ; \ + done + for file in autoheader ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) autoreconf $(targetdir)/$$file ; \ + done + for file in autoupdate ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) autoscan $(targetdir)/$$file ; \ + done + for file in btdownloadcurses.py btdownloadgui.py ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) btdownloadheadless.py $(targetdir)/$$file ; \ + done + for file in lbzip2 pbzip2 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) bzip2 $(targetdir)/$$file ; \ + done + for file in ncal ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) cal $(targetdir)/$$file ; \ + done + for file in pccardctl ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) cardctl $(targetdir)/$$file ; \ + done + for file in compgen ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) complete $(targetdir)/$$file ; \ + done + for file in mogrify display animate identify montage composite \ + compare conjure import stream ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) convert $(targetdir)/$$file ; \ + done + for file in cowthink ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) cowsay $(targetdir)/$$file ; \ + done + for file in rdict ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) dict $(targetdir)/$$file ; \ + done + for file in dpkg-deb dpkg-query dpkg-reconfigure ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) dpkg $(targetdir)/$$file ; \ + done + for file in mailsnarf msgsnarf ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) filesnarf $(targetdir)/$$file ; \ + done + for file in civclient freeciv-sdl freeciv-xaw ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) freeciv-gtk2 $(targetdir)/$$file ; \ + done + for file in civserver ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) freeciv-server $(targetdir)/$$file ; \ + done + for file in declare typeset ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) function $(targetdir)/$$file ; \ + done + for file in g++ c++ g77 gcj gpc cc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) gcc $(targetdir)/$$file ; \ + done + for file in mkisofs ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) genisoimage $(targetdir)/$$file ; \ + done + for file in gkrellm2 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) gkrellm $(targetdir)/$$file ; \ + done + for file in pigz ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) gzip $(targetdir)/$$file ; \ + done + for file in sdptool l2ping rfcomm ciptool dfutool hciconfig \ + hciattach ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) hcitool $(targetdir)/$$file ; \ + done + for file in hping hping3 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) hping2 $(targetdir)/$$file ; \ + done + for file in ifdown ifstatus ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ifup $(targetdir)/$$file ; \ + done + for file in pinfo ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) info $(targetdir)/$$file ; \ + done + for file in modprobe modinfo ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) insmod $(targetdir)/$$file ; \ + done + for file in javac javadoc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) java $(targetdir)/$$file ; \ + done + for file in pkill ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) killall $(targetdir)/$$file ; \ + done + for file in ldapadd ldapmodify ldapdelete ldapcompare ldapmodrdn \ + ldapwhoami ldappasswd ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ldapsearch $(targetdir)/$$file ; \ + done + for file in lintian-info ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) lintian $(targetdir)/$$file ; \ + done + for file in lvmdiskscan pvscan pvs pvdisplay pvchange pvcreate pvmove \ + pvremove vgscan vgs vgdisplay vgchange vgremove vgrename \ + vgreduce vgextend vgimport vgexport vgck vgconvert \ + vgcfgbackup vgcfgrestore vgmerge vgsplit vgmknodes lvscan lvs \ + lvdisplay lvchange lvcreate lvremove lvrename lvreduce \ + lvresize lvextend ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) lvm $(targetdir)/$$file ; \ + done + for file in gmake gnumake pmake ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) make $(targetdir)/$$file ; \ + done + for file in apropos whatis ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) man $(targetdir)/$$file ; \ + done + for file in mdecrypt ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mcrypt $(targetdir)/$$file ; \ + done + for file in umount ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mount $(targetdir)/$$file ; \ + done + for file in mplayer2 mencoder gmplayer kplayer ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mplayer $(targetdir)/$$file ; \ + done + for file in muttng ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) mutt $(targetdir)/$$file ; \ + done + for file in host ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) nslookup $(targetdir)/$$file ; \ + done + for file in g4 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) p4 $(targetdir)/$$file ; \ + done + for file in perldoc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) perl $(targetdir)/$$file ; \ + done + for file in pidof ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pgrep $(targetdir)/$$file ; \ + done + for file in alpine ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pine $(targetdir)/$$file ; \ + done + for file in ping6 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ping $(targetdir)/$$file ; \ + done + for file in pkg_info pkg_deinstall ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pkg_delete $(targetdir)/$$file ; \ + done + for file in pm-suspend pm-suspend-hybrid ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) pm-hibernate $(targetdir)/$$file ; \ + done + for file in createdb dropdb ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) psql $(targetdir)/$$file ; \ + done + for file in postalias ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) postmap $(targetdir)/$$file ; \ + done + for file in xpovray spovray ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) povray $(targetdir)/$$file ; \ + done + for file in puppetmasterd puppetd puppetca ralsh puppetrun puppetqd \ + filebucket puppetdoc ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) puppet $(targetdir)/$$file ; \ + done + for file in python2 python3 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) python $(targetdir)/$$file ; \ + done + for file in dcop ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) qdbus $(targetdir)/$$file ; \ + done + for file in setquota edquota quotacheck repquota quotaon quotaoff ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) quota $(targetdir)/$$file ; \ + done + for file in ci co rlog rcsdiff ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) rcs $(targetdir)/$$file ; \ + done + for file in rpmbuild rpmbuild-md5 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) rpm $(targetdir)/$$file ; \ + done + for file in rpm2txz rpm2targz ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) rpm2tgz $(targetdir)/$$file ; \ + done + for file in smbget smbcacls smbcquotas smbpasswd smbtar smbtree ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) smbclient $(targetdir)/$$file ; \ + done + for file in sbcl-mt ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) sbcl $(targetdir)/$$file ; \ + done + for file in slogin autossh sftp scp ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ssh $(targetdir)/$$file ; \ + done + for file in tracepath6 ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) tracepath $(targetdir)/$$file ; \ + done + for file in alternatives ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) update-alternatives $(targetdir)/$$file ; \ + done + for file in vigr ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) vipw $(targetdir)/$$file ; \ + done + for file in tightvncviewer xvnc4viewer ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) vncviewer $(targetdir)/$$file ; \ + done + for file in cdrecord ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) wodim $(targetdir)/$$file ; \ + done + for file in pxz ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) xz $(targetdir)/$$file ; \ + done + for file in ypcat ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) ypmatch $(targetdir)/$$file ; \ + done +.PHONY: symlinks + +all-local: targetdir = . +all-local: symlinks + +install-data-local: targetdir = $(DESTDIR)$(bashcompdir) +install-data-local: symlinks + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/completions/_mock b/completions/_mock index fa312711..cb7d6571 100644 --- a/completions/_mock +++ b/completions/_mock @@ -1,31 +1,26 @@ +# bash completion for mock -*- shell-script -*- + # Use of this file is deprecated. Upstream completion is available in # mock > 1.1.0, use that instead. -# bash completion for mock - -have mock && _mock() { - local cur prev plugins cfgdir split=false + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - plugins='tmpfs root_cache yum_cache bind_mount ccache' - cfgdir=/etc/mock + local plugins='tmpfs root_cache yum_cache bind_mount ccache' + local cfgdir=/etc/mock count=0 i - count=0 - for i in "${COMP_WORDS[@]}" ; do - [ $count -eq $COMP_CWORD ] && break + for i in "${words[@]}" ; do + [ $count -eq $cword ] && break if [[ "$i" == --configdir ]] ; then - cfgdir="${COMP_WORDS[((count+1))]}" + cfgdir="${words[((count+1))]}" elif [[ "$i" == --configdir=* ]] ; then cfgdir=${i/*=/} fi count=$((++count)) done - _split_longopt && split=true - case $prev in -h|--help|--copyin|--copyout|--arch|-D|--define|--with|--without|\ --uniqueext|--rpmbuild_timeout|--sources|--cwd) @@ -63,23 +58,12 @@ _mock() $split && return 0 if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '--version --help --rebuild --buildsrpm - --shell --chroot --clean --init --installdeps --install --update - --orphanskill --copyin --copyout --root --offline --no-clean - --cleanup-after --no-cleanup-after --arch --target --define --with - --without --resultdir --uniqueext --configdir --rpmbuild_timeout - --unpriv --cwd --spec --sources --verbose --quiet --trace - --enable-plugin --disable-plugin --print-root-path' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else _filedir '@(?(no)src.r|s)pm' fi } && complete -F _mock mock -# 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/completions/_modules b/completions/_modules index f1ad88d8..6f337a90 100644 --- a/completions/_modules +++ b/completions/_modules @@ -1,8 +1,8 @@ +# module completion by Ted Stern <stern@cray.com> -*- shell-script -*- +# # Use of this file is deprecated, upstream completion is available in # modules >= 3.2.7, use that instead. # -# module completion by Ted Stern <stern@cray.com> -# # Completion for Environment Modules `module' alias. # # See http://sourceforge.net/projects/modules/ @@ -19,7 +19,7 @@ # Test for existence of /etc/profile.d/modules.sh too because we may end up # being sourced before it and thus before the `module' alias has been defined. -have module || [ -f /etc/profile.d/modules.sh ] && { +[ -f /etc/profile.d/modules.sh ] || return 1 _module_list () { @@ -46,20 +46,19 @@ _module_avail () # A completion function for the module alias _module () { - local cur prev options - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return - if [ $COMP_CWORD -eq 1 ] ; then + if [ $cword -eq 1 ] ; then # First parameter on line -- we expect it to be a mode selection + local options options="$( module help 2>&1 | command grep -E '^[[:space:]]*\+' | \ awk '{print $2}' | sed -e 's/|/ /g' | sort )" COMPREPLY=( $(compgen -W "$options" -- "$cur") ) - elif [ $COMP_CWORD -eq 2 ] ; then + elif [ $cword -eq 2 ] ; then case $prev in add|display|help|load|show|whatis) COMPREPLY=( $(_module_avail "$cur") ) @@ -71,22 +70,15 @@ _module () COMPREPLY=( $(_module_path "$cur") ) ;; esac - elif [ $COMP_CWORD -eq 3 ] ; then - case ${COMP_WORDS[1]} in + elif [ $cword -eq 3 ] ; then + case ${words[1]} in swap|switch) COMPREPLY=( $(_module_avail "$cur") ) ;; esac fi return 0 -} +} && complete -F _module -o default module -} -# 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/completions/_subversion b/completions/_subversion index 91523d89..103bcb86 100644 --- a/completions/_subversion +++ b/completions/_subversion @@ -1,17 +1,14 @@ +# svn completion -*- shell-script -*- + # Use of this file is deprecated. Upstream completion is available in # subversion >= 0.12.0, use that instead. -# svn completion - -have svn && -{ _svn() { - local cur prev commands options command - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return + local commands commands='add blame praise annotate ann cat checkout co cleanup commit \ ci copy cp delete del remove rm diff di export help ? h import \ info list ls lock log merge mkdir move mv rename ren \ @@ -19,7 +16,7 @@ _svn() proplist plist pl propset pset ps resolved revert \ status stat st switch sw unlock update up' - if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ $cword -eq 1 ]] ; then if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--version' -- $cur ) ) else @@ -42,154 +39,149 @@ _svn() return 0 ;; --editor-cmd|--diff-cmd|--diff3-cmd) - COMP_WORDS=(COMP_WORDS[0] $cur) - COMP_CWORD=1 + words=(words[0] $cur) + cword=1 _command return 0 ;; esac - command=${COMP_WORDS[1]} + local command=${words[1]} if [[ "$cur" == -* ]]; then # possible options for the command + local options case $command in add) options='--auto-props --no-auto-props --force --targets - --no-ignore --non-recursive -N -q --quiet' + --no-ignore --non-recursive --quiet' ;; blame|annotate|ann|praise) - options='-r --revisions --username --password - --no-auth-cache --non-interactive -v --verbose - --incremental --xml' + options='--revision --username --password --no-auth-cache + --non-interactive --verbose --incremental --xml' ;; cat) - options='-r --revision --username --password - --no-auth-cache --non-interactive' + options='--revision --username --password --no-auth-cache + --non-interactive' ;; checkout|co) - options='-r --revision -q --quiet -N --non-recursive - --username --password --no-auth-cache - --non-interactive --ignore-externals' + options='--revision --quiet --non-recursive --username + --password --no-auth-cache --non-interactive + --ignore-externals' ;; cleanup) options='--diff3-cmd' ;; commit|ci) - options='-m --message -F --file --encoding --force-log -q - --quiet --non-recursive -N --targets --editor-cmd - --username --password --no-auth-cache - --non-interactive --no-unlock' + options='--message --file --encoding --force-log --quiet + --non-recursive --targets --editor-cmd --username + --password --no-auth-cache --non-interactive + --no-unlock' ;; copy|cp) - options='-m --message -F --file --encoding --force-log -r - --revision -q --quiet --editor-cmd -username - --password --no-auth-cache --non-interactive' + options='--message --file --encoding --force-log --revision + --quiet --editor-cmd -username --password + --no-auth-cache --non-interactive' ;; delete|del|remove|rm) - options='--force -m --message -F --file --encoding - --force-log -q --quiet --targets --editor-cmd - --username --password --no-auth-cache - --non-interactive' + options='--force --message --file --encoding --force-log + --quiet --targets --editor-cmd --username + --password --no-auth-cache --non-interactive' ;; diff|di) - options='-r --revision -x --extensions --diff-cmd - --no-diff-deleted -N --non-recursive --username + options='--revision --extensions --diff-cmd + --no-diff-deleted --non-recursive --username --password --no-auth-cache --non-interactive --force --old --new --notice-ancestry' ;; export) - options='-r --revision -q --quiet --username --password - --no-auth-cache --non-interactive -N - --non-recursive --force --native-eol - --ignore-externals' + options='--revision --quiet --username --password + --no-auth-cache --non-interactive --non-recursive + --force --native-eol --ignore-externals' ;; import) - options='--auto-props --no-auto-props -m --message -F - --file --encoding --force-log -q --quiet - --non-recursive --no-ignore --editor-cmd - --username --password --no-auth-cache - --non-interactive' + options='--auto-props --no-auto-props --message --file + --encoding --force-log --quiet --non-recursive + --no-ignore --editor-cmd --username --password + --no-auth-cache --non-interactive' ;; info) options='--username --password --no-auth-cache - --non-interactive -r --revision --xml --targets - -R --recursive --incremental' + --non-interactive --revision --xml --targets + --recursive --incremental' ;; list|ls) - options='-r --revision -v --verbose -R --recursive - --username --password --no-auth-cache - --non-interactive --incremental --xml' + options='--revision --verbose --recursive --username + --password --no-auth-cache --non-interactive + --incremental --xml' ;; lock) - options='-m --message -F --file --encoding --force-log - --targets --force --username --password - --no-auth-cache --non-interactive' + options='--message --file --encoding --force-log --targets + --force --username --password --no-auth-cache + --non-interactive' ;; log) - options='-r --revision -v --verbose --targets --username + options='--revision --verbose --targets --username --password --no-auth-cache --non-interactive - --stop-on-copy --incremental --xml -q --quiet + --stop-on-copy --incremental --xml --quiet --limit' ;; merge) - options='-r --revision -N --non-recursive -q --quiet - --force --dry-run --diff3-cmd --username - --password --no-auth-cache --non-interactive + options='--revision --non-recursive --quiet --force + --dry-run --diff3-cmd --username --password + --no-auth-cache --non-interactive --ignore-ancestry' ;; mkdir) - options='-m --message -F --file --encoding --force-log -q - --quiet --editor-cmd --username --password - --no-auth-cache --non-interactive' + options='--message --file --encoding --force-log --quiet + --editor-cmd --username --password --no-auth-cache + --non-interactive' ;; move|mv|rename|ren) - options='-m --message -F --file --encoding --force-log -r - --revision -q --quiet --force --editor-cmd - --username --password --no-auth-cache - --non-interactive' + options='--message --file --encoding --force-log --revision + --quiet --force --editor-cmd --username --password + --no-auth-cache --non-interactive' ;; propdel|pdel|pd) - options='-q --quiet -R --recursive -r --revision --revprop + options='--quiet --recursive --revision --revprop --username --password --no-auth-cache --non-interactive' ;; propedit|pedit|pe) - options='-r --revision --revprop --encoding --editor-cmd + options='--revision --revprop --encoding --editor-cmd --username --password --no-auth-cache --non-interactive --force' ;; propget|pget|pg) - options='-R --recursive -r --revision --revprop --strict + options='--recursive --revision --revprop --strict --username --password --no-auth-cache --non-interactive' ;; proplist|plist|pl) - options='-v --verbose -R --recursive -r --revision - --revprop -q --quiet --username --password - --no-auth-cache --non-interactive' + options='--verbose --recursive --revision --revprop --quiet + --username --password --no-auth-cache + --non-interactive' ;; propset|pset|ps) - options='-F --file -q --quiet --targets -R --recursive - --revprop --encoding --username --password - --no-auth-cache --non-interactive -r --revision - --force' + options='--file --quiet --targets --recursive --revprop + --encoding --username --password --no-auth-cache + --non-interactive --revision --force' ;; resolved) - options='--targets -R --recursive -q --quiet' + options='--targets --recursive --quiet' ;; revert) - options='--targets -R --recursive -q --quiet' + options='--targets --recursive --quiet' ;; status|stat|st) - options='-u --show-updates -v --verbose -N --non-recursive - -q --quiet --username --password --no-auth-cache + options='--show-updates --verbose --non-recursive --quiet + --username --password --no-auth-cache --non-interactive --no-ignore --ignore-externals --incremental --xml' ;; switch|sw) - options='--relocate -r --revision -N --non-recursive -q - --quiet --username --password --no-auth-cache + options='--relocate --revision --non-recursive --quiet + --username --password --no-auth-cache --non-interactive --diff3-cmd' ;; unlock) @@ -197,12 +189,12 @@ _svn() --no-auth-cache --non-interactive' ;; update|up) - options='-r --revision -N --non-recursive -q --quiet - --username --password --no-auth-cache - --non-interactive --diff3-cmd --ignore-externals' + options='--revision --non-recursive --quiet --username + --password --no-auth-cache --non-interactive + --diff3-cmd --ignore-externals' ;; esac - options="$options --help -h --config-dir" + options+=" --help --config-dir" COMPREPLY=( $( compgen -W "$options" -- $cur ) ) else @@ -215,20 +207,19 @@ _svn() fi return 0 -} +} && complete -F _svn svn _svnadmin() { - local cur prev commands options mode - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return + local commands commands='create deltify dump help ? hotcopy list-dblogs list-unused-dblogs load lslocks lstxns recover rmlocks rmtxns setlog verify' - if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ $cword -eq 1 ]] ; then if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--version' -- $cur ) ) else @@ -246,37 +237,38 @@ _svnadmin() ;; esac - command=${COMP_WORDS[1]} + local command=${words[1]} if [[ "$cur" == -* ]]; then # possible options for the command + local options case $command in create) options='--bdb-txn-nosync --bdb-log-keep --config-dir --fs-type' ;; deltify) - options='-r --revision -q --quiet' + options='--revision --quiet' ;; dump) - options='-r --revision --incremental -q --quiet --deltas' + options='--revision --incremental --quiet --deltas' ;; hotcopy) options='--clean-logs' ;; load) - options='--ignore-uuid --force-uuid --parent-dir -q --quiet + options='--ignore-uuid --force-uuid --parent-dir --quiet --use-pre-commit-hook --use-post-commit-hook' ;; rmtxns) - options='-q --quiet' + options='--quiet' ;; setlog) - options='-r --revision --bypass-hooks' + options='--revision --bypass-hooks' ;; esac - options="$options --help -h" + options+=" --help" COMPREPLY=( $( compgen -W "$options" -- $cur ) ) else if [[ "$command" == @(help|h|\?) ]]; then @@ -288,54 +280,53 @@ _svnadmin() fi return 0 -} +} && complete -F _svnadmin -o default svnadmin _svnlook() { - local cur prev commands options mode - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return + local commands commands='author cat changed date diff dirs-changed help ? h history info lock log propget pget pg proplist plist pl tree uuid youngest' - if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ $cword -eq 1 ]] ; then if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--version' -- $cur ) ) else COMPREPLY=( $( compgen -W "$commands" -- $cur ) ) fi else - command=${COMP_WORDS[1]} + local command=${words[1]} if [[ "$cur" == -* ]]; then # possible options for the command + local options case $command in author|cat|date|dirs-changed|info|log) - options='-r --revision -t --transaction' + options='--revision --transaction' ;; changed) - options='-r --revision -t --transaction --copy-info' + options='--revision --transaction --copy-info' ;; diff) - options='-r --revision -t --transaction --no-diff-deleted + options='--revision --transaction --no-diff-deleted --no-diff-added --diff-copy-from' ;; history) - options='-r --revision --show-ids' + options='--revision --show-ids' ;; propget|proplist) - options='-r --revision -t --transaction --revprop' + options='--revision --transaction --revprop' ;; tree) - options='-r --revision -t --transaction --show-ids - --full-paths' + options='--revision --transaction --show-ids --full-paths' ;; esac - options="$options --help -h" + options+=" --help" COMPREPLY=( $( compgen -W "$options" -- $cur ) ) else if [[ "$command" == @(help|h|\?) ]]; then @@ -347,14 +338,7 @@ _svnlook() fi return 0 -} +} && complete -F _svnlook -o default svnlook -} -# 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/completions/_yum b/completions/_yum index 9d3cbb68..c2d37948 100644 --- a/completions/_yum +++ b/completions/_yum @@ -1,9 +1,8 @@ +# yum(8) completion -*- shell-script -*- + # Use of this file is deprecated. Upstream completion is available in # yum > 3.2.25, use that instead. -# yum(8) completion - -have yum && { _yum_list() { if [[ "$1" == all ]] ; then @@ -36,20 +35,20 @@ _yum_plugins() _yum() { - local cur prev special i split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword split + _init_completion -s || return - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == @(install|update|upgrade|remove|erase|deplist|info) ]]; then - special=${COMP_WORDS[i]} + local special i + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == @(install|update|upgrade|remove|erase|deplist|info) ]]; then + special=${words[i]} fi done if [ -n "$special" ]; then # TODO: install|update|upgrade should not match *src.rpm - if [[ "$cur" == */* && "$special" == @(deplist|install|update|upgrade) ]]; then + if [[ "$cur" == @(*/|[.~])* && \ + "$special" == @(deplist|install|update|upgrade) ]]; then _filedir rpm return 0 fi @@ -74,8 +73,6 @@ _yum() esac fi - _split_longopt && split=true - case $prev in list) COMPREPLY=( $( compgen -W 'all available updates \ @@ -93,7 +90,7 @@ _yum() _filedir rpm ;; -d|-e) - COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9 10' -- $cur ) ) + COMPREPLY=( $( compgen -W '{0..10}' -- $cur ) ) ;; -c) _filedir @@ -137,21 +134,11 @@ _yum() $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --tolerant -C -c -R -d \ - --showduplicates -e --quiet --verbose -y --version --installroot \ - --enablerepo --disablerepo --exclude --disableexcludes --obsoletes \ - --noplugins --nogpgcheck --disableplugin --enableplugin \ - --skip-broken --color' -- $cur ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 fi -} } && complete -F _yum yum -# 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/completions/_yum-utils b/completions/_yum-utils index b7f6d264..22b97af8 100644 --- a/completions/_yum-utils +++ b/completions/_yum-utils @@ -1,31 +1,24 @@ +# bash completion for repomanage -*- shell-script -*- + # Use of this file is deprecated. Upstream completion is available in # yum-utils >= 1.1.24, use that instead. -# bash completion for repomanage - -have repomanage && _repomanage() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword split + _init_completion -s || return [[ "$prev" == -@(h|-help|k|-keep) ]] && return 0 + $split && return + if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '--old --new --space \ - --keep --nocheck --help' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else _filedir -d fi } && complete -F _repomanage repomanage -# 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/completions/a2x b/completions/a2x new file mode 100644 index 00000000..7c330908 --- /dev/null +++ b/completions/a2x @@ -0,0 +1,40 @@ +# a2x(1) completion -*- shell-script -*- + +_a2x() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -a|--attribute|--asciidoc-opts|--dblatex-opts|--fop-opts|-h|--help|\ + --version|--xsltproc-opts) + return + ;; + -D|--destination-dir|--icons-dir) + _filedir -d + return + ;; + --doctype|-d) + _xfunc asciidoc _asciidoc_doctype + return + ;; + --stylesheet) + _filedir css + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + _filedir +} && +complete -F _a2x a2x + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/abook b/completions/abook index f09c8b50..07a0f090 100644 --- a/completions/abook +++ b/completions/abook @@ -1,16 +1,12 @@ -# abook(1) completion +# abook(1) completion -*- shell-script -*- -have abook && _abook() { - local cur prev + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - - # abook only takes options, tabbing after command name adds a single - # dash (bash4) - [[ ${BASH_VERSINFO[0]} -ge 4 && $COMP_CWORD -eq 1 && -z "$cur" ]] && + # abook only takes options, tabbing after command name adds a single dash + [[ $cword -eq 1 && -z "$cur" ]] && { compopt -o nospace COMPREPLY=( "-" ) @@ -53,10 +49,4 @@ _abook() } && complete -F _abook abook -# 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/completions/aclocal b/completions/aclocal new file mode 100644 index 00000000..2bbc3152 --- /dev/null +++ b/completions/aclocal @@ -0,0 +1,35 @@ +# aclocal(1) completion -*- shell-script -*- + +_aclocal() +{ + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + --help|--print-ac-dir|--version) + return 0 + ;; + --acdir|-I) + _filedir -d + return 0 + ;; + --output) + _filedir + return 0 + ;; + --warnings|-W) + local cats=( syntax unsupported ) + COMPREPLY=( $( compgen -W \ + '${cats[@]} ${cats[@]/#/no-} all none error' -- "$cur" ) ) + return 0 + ;; + esac + + $split && return 0 + + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace +} && +complete -F _aclocal aclocal aclocal-1.11 + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/add_members b/completions/add_members new file mode 100644 index 00000000..3a6661c2 --- /dev/null +++ b/completions/add_members @@ -0,0 +1,32 @@ +# mailman add_members completion -*- shell-script -*- + +_add_members() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -r|-d|--regular-members-file|--digest-members-file) + _filedir + return 0 + ;; + -w|-a|--welcome-msg|--admin-notify) + COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--regular-members-file \ + --digest-members-file --welcome-msg \ + --admin-notify --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _add_members add_members + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/alias b/completions/alias new file mode 100644 index 00000000..112dea3b --- /dev/null +++ b/completions/alias @@ -0,0 +1,20 @@ +# bash alias completion -*- shell-script -*- + +_alias() +{ + local cur prev words cword + _init_completion || return + + case ${words[@]} in + *[^=]) + COMPREPLY=( $( compgen -A alias -- "$cur" ) ) + ;; + *=) + COMPREPLY=( "$( alias ${cur%=} 2>/dev/null | sed \ + -e 's|^alias '"$cur"'\(.*\)$|\1|' )" ) + ;; + esac +} && +complete -F _alias -o nospace alias + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/ant b/completions/ant index 132c4390..96ef8172 100644 --- a/completions/ant +++ b/completions/ant @@ -1,13 +1,9 @@ -# bash completion for ant +# bash completion for ant and phing -*- shell-script -*- -have ant && -{ _ant() { - local cur prev buildfile i - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -buildfile|-file|-f) @@ -23,48 +19,46 @@ _ant() return 0 ;; -nice) - COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9 10' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{1..10}' -- "$cur" ) ) + return 0 + ;; + -lib) + _filedir -d return 0 ;; - -lib|-logger|-listener|-D|-inputhandler|-main) + -logger|-listener|-inputhandler|-main|-find|-s) return 0 ;; esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-help -projecthelp -version -diagnostics \ - -quiet -verbose -debug -emacs -lib -logfile -logger -listener \ - -noinput -buildfile -D -keep-going -propertyfile -inputhandler \ - -find -s -nice -nouserlib -noclasspath -autoproxy -main' \ - -- "$cur" ) ) + if [[ $cur == -D* ]]; then + return 0 + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) else # available targets completion # find which buildfile to use - buildfile=build.xml - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -@(?(build)file|f) ]]; then - buildfile=${COMP_WORDS[i+1]} + local buildfile=build.xml i + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -@(?(build)file|f) ]]; then + buildfile=${words[i+1]} break fi done [ ! -f $buildfile ] && return 0 # parse buildfile for targets - # some versions of sed complain if there's no trailing linefeed, - # hence the 2>/dev/null - COMPREPLY=( $( compgen -W "$( cat $buildfile | tr "'\t\n>" "\" \n" | \ - sed -ne 's/.*<target .*name="\([^"]*\).*/\1/p' 2>/dev/null )" \ - -- "$cur" ) ) - fi -} -have complete-ant-cmd.pl && \ - complete -C complete-ant-cmd.pl -F _ant ant || complete -F _ant ant -} + local line targets + while read -rd '>' line; do + [[ $line =~ \ + \<(targe|extension-poin)t[[:space:]].*name=[\"\']([^\"\']+) ]] \ + && targets+=" ${BASH_REMATCH[2]}" + done < $buildfile + COMPREPLY=( $( compgen -W '$targets' -- "$cur" ) ) + fi +} && +complete -F _ant ant phing +type complete-ant-cmd.pl &>/dev/null && \ + complete -C complete-ant-cmd.pl -F _ant ant || : -# 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/completions/apache2ctl b/completions/apache2ctl index 287443a2..f6fdeb30 100644 --- a/completions/apache2ctl +++ b/completions/apache2ctl @@ -1,24 +1,16 @@ -# apache2ctl(1) completion +# apache2ctl(1) completion -*- shell-script -*- -have apache2ctl && { -_apache2ctl() { - local APWORDS cur - - COMPREPLY=() - _get_comp_words_by_ref cur +_apache2ctl() +{ + local cur prev words cword + _init_completion || return + local APWORDS APWORDS=$(apache2ctl 2>&1 >/dev/null | awk 'NR<2 { print $3; exit }' | \ tr "|" " ") COMPREPLY=( $( compgen -W "$APWORDS" -- "$cur" ) ) -} +} && complete -F _apache2ctl apache2ctl -} -# 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/completions/apt b/completions/apt deleted file mode 100644 index 84811ae8..00000000 --- a/completions/apt +++ /dev/null @@ -1,157 +0,0 @@ -# Debian apt-get(8) completion. - -have apt-get && -_apt_get() -{ - local cur prev special i - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == @(install|remove|autoremove|purge|source|build-dep) ]]; then - special=${COMP_WORDS[i]} - fi - done - - if [ -n "$special" ]; then - case $special in - remove|autoremove|purge) - if [ -f /etc/debian_version ]; then - # Debian system - COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) ) - else - # assume RPM based - _rpm_installed_packages - fi - return 0 - ;; - source) - COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \ - 2> /dev/null ) $( apt-cache dumpavail | \ - command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) ) - return 0 - ;; - *) - COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \ - 2> /dev/null ) ) - return 0 - ;; - esac - fi - - case $prev in - -c|--config-file) - _filedir - return 0 - ;; - -t|--target-release|--default-release) - COMPREPLY=( $( apt-cache policy | \ - command grep "release.o=Debian,a=$cur" | \ - sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) ) - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y -u -t -b -c -o \ - --download-only --fix-broken --help --version --ignore-missing \ - --fix-missing --no-download --quiet --simulate --just-print \ - --dry-run --recon --no-act --yes --assume-yes --show-upgraded \ - --only-source --compile --build --ignore-hold --target-release \ - --no-upgrade --force-yes --print-uris --purge --reinstall \ - --list-cleanup --default-release --trivial-only --no-remove \ - --diff-only --no-install-recommends --tar-only --config-file \ - --option --auto-remove' -- "$cur" ) ) - else - COMPREPLY=( $( compgen -W 'update upgrade dselect-upgrade \ - dist-upgrade install remove purge source build-dep \ - check clean autoclean autoremove' -- "$cur" ) ) - fi - - return 0 -} && -complete -F _apt_get apt-get - -# Debian apt-cache(8) completion. -# -have apt-cache && -_apt_cache() -{ - local cur prev special i - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [ "$cur" != show ]; then - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == @(add|depends|dotty|madison|policy|rdepends|show?(pkg|src|)) ]]; then - special=${COMP_WORDS[i]} - fi - done - fi - - - if [ -n "$special" ]; then - case $special in - add) - _filedir - return 0 - ;; - - showsrc) - COMPREPLY=( $( apt-cache dumpavail | \ - command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) ) - return 0 - ;; - - *) - COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" 2> /dev/null ) ) - return 0 - ;; - - esac - fi - - - case $prev in - -c|-p|-s|--config-file|--pkg-cache|--src-cache) - _filedir - return 0 - ;; - search) - if [[ "$cur" != -* ]]; then - return 0 - fi - ;; - esac - - if [[ "$cur" == -* ]]; then - - COMPREPLY=( $( compgen -W '-h -v -p -s -q -i -f -a -g -c \ - -o --help --version --pkg-cache --src-cache \ - --quiet --important --full --all-versions \ - --no-all-versions --generate --no-generate \ - --names-only --all-names --recurse \ - --config-file --option --installed' -- "$cur" ) ) - else - - COMPREPLY=( $( compgen -W 'add gencaches show showpkg showsrc \ - stats dump dumpavail unmet search search \ - depends rdepends pkgnames dotty xvcg \ - policy madison' -- "$cur" ) ) - - fi - - - return 0 -} && -complete -F _apt_cache apt-cache - -# 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/completions/apt-build b/completions/apt-build index d875a986..aa78b230 100644 --- a/completions/apt-build +++ b/completions/apt-build @@ -1,16 +1,14 @@ -# Debian apt-build(1) completion. +# Debian apt-build(1) completion -*- shell-script -*- -have apt-build && _apt_build() { - local cur prev special i + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == @(install|remove|source|info|clean) ]]; then - special=${COMP_WORDS[i]} + local special i + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == @(install|remove|source|info|clean) ]]; then + special=${words[i]} fi done @@ -21,7 +19,8 @@ _apt_build() return 0 ;; remove) - COMPREPLY=( $( _comp_dpkg_installed_packages "$cur" ) ) + COMPREPLY=( \ + $( _xfunc dpkg _comp_dpkg_installed_packages "$cur" ) ) return 0 ;; *) @@ -57,10 +56,4 @@ _apt_build() } && complete -F _apt_build apt-build -# 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/completions/apt-cache b/completions/apt-cache new file mode 100644 index 00000000..00b41478 --- /dev/null +++ b/completions/apt-cache @@ -0,0 +1,74 @@ +# Debian apt-cache(8) completion -*- shell-script -*- + +_apt_cache() +{ + local cur prev words cword + _init_completion || return + + local special i + if [ "$cur" != show ]; then + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == @(add|depends|dotty|madison|policy|rdepends|show?(pkg|src|)) ]]; then + special=${words[i]} + fi + done + fi + + + if [ -n "$special" ]; then + case $special in + add) + _filedir + return 0 + ;; + + showsrc) + COMPREPLY=( $( apt-cache dumpavail | \ + command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) ) + return 0 + ;; + + *) + COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" 2> /dev/null ) ) + return 0 + ;; + + esac + fi + + + case $prev in + -c|-p|-s|--config-file|--pkg-cache|--src-cache) + _filedir + return 0 + ;; + search) + if [[ "$cur" != -* ]]; then + return 0 + fi + ;; + esac + + if [[ "$cur" == -* ]]; then + + COMPREPLY=( $( compgen -W '-h -v -p -s -q -i -f -a -g -c \ + -o --help --version --pkg-cache --src-cache \ + --quiet --important --full --all-versions \ + --no-all-versions --generate --no-generate \ + --names-only --all-names --recurse \ + --config-file --option --installed' -- "$cur" ) ) + else + + COMPREPLY=( $( compgen -W 'add gencaches show showpkg showsrc \ + stats dump dumpavail unmet search search \ + depends rdepends pkgnames dotty xvcg \ + policy madison' -- "$cur" ) ) + + fi + + + return 0 +} && +complete -F _apt_cache apt-cache + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/apt-get b/completions/apt-get new file mode 100644 index 00000000..447305a4 --- /dev/null +++ b/completions/apt-get @@ -0,0 +1,76 @@ +# Debian apt-get(8) completion -*- shell-script -*- + +_apt_get() +{ + local cur prev words cword + _init_completion || return + + local special i + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == @(install|remove|autoremove|purge|source|build-dep|download) ]]; then + special=${words[i]} + fi + done + + if [ -n "$special" ]; then + case $special in + remove|autoremove|purge) + if [ -f /etc/debian_version ]; then + # Debian system + COMPREPLY=( $( \ + _xfunc dpkg _comp_dpkg_installed_packages $cur ) ) + else + # assume RPM based + _xfunc rpm _rpm_installed_packages + fi + return 0 + ;; + source) + COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \ + 2> /dev/null ) $( apt-cache dumpavail | \ + command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) ) + return 0 + ;; + *) + COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \ + 2> /dev/null ) ) + return 0 + ;; + esac + fi + + case $prev in + -c|--config-file) + _filedir + return 0 + ;; + -t|--target-release|--default-release) + COMPREPLY=( $( apt-cache policy | \ + command grep "release.o=Debian,a=$cur" | \ + sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y -u -t -b -c -o \ + --download-only --fix-broken --help --version --ignore-missing \ + --fix-missing --no-download --quiet --simulate --just-print \ + --dry-run --recon --no-act --yes --assume-yes --show-upgraded \ + --only-source --compile --build --ignore-hold --target-release \ + --no-upgrade --force-yes --print-uris --purge --reinstall \ + --list-cleanup --default-release --trivial-only --no-remove \ + --diff-only --no-install-recommends --tar-only --config-file \ + --option --auto-remove' -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W 'update upgrade dselect-upgrade \ + dist-upgrade install remove purge source build-dep \ + download \ + check clean autoclean autoremove' -- "$cur" ) ) + fi + + return 0 +} && +complete -F _apt_get apt-get + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/aptitude b/completions/aptitude index c00ad40e..1afd738d 100644 --- a/completions/aptitude +++ b/completions/aptitude @@ -1,7 +1,6 @@ -# Debian aptitude(1) completion +# Debian aptitude(1) completion -*- shell-script -*- -have aptitude && { -have grep-status && { +_have grep-status && { _comp_dpkg_hold_packages() { grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package @@ -16,11 +15,10 @@ _comp_dpkg_hold_packages() _aptitude() { - local cur dashoptions prev special i - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return + local dashoptions dashoptions='-S -u -i -h --help --version -s --simulate -d \ --download-only -P --prompt -y --assume-yes -F \ --display-format -O --sort -w --width -f -r -g \ @@ -28,25 +26,27 @@ _aptitude() --target-release -V --show-versions -D --show-deps\ -Z -v --verbose --purge-unused --schedule-only' - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == @(@(|re)install|@(|un)hold|@(|un)markauto|@(dist|full)-upgrade|download|show|forbid-version|purge|remove|changelog|why@(|-not)|keep@(|-all)|build-dep|@(add|remove)-user-tag) ]]; then - special=${COMP_WORDS[i]} + local special i + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == @(@(|re)install|@(|un)hold|@(|un)markauto|@(dist|full)-upgrade|download|show|forbid-version|purge|remove|changelog|why@(|-not)|keep@(|-all)|build-dep|@(add|remove)-user-tag|versions) ]]; then + special=${words[i]} fi #exclude some mutually exclusive options - [[ ${COMP_WORDS[i]} == '-u' ]] && dashoptions=${dashoptions/-i} - [[ ${COMP_WORDS[i]} == '-i' ]] && dashoptions=${dashoptions/-u} + [[ ${words[i]} == '-u' ]] && dashoptions=${dashoptions/-i} + [[ ${words[i]} == '-i' ]] && dashoptions=${dashoptions/-u} done if [[ -n "$special" ]]; then case $special in install|hold|markauto|unmarkauto|dist-upgrade|full-upgrade| \ download|show|changelog|why|why-not|build-dep|add-user-tag| \ - remove-user-tag) + remove-user-tag|versions) COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) return 0 ;; purge|remove|reinstall|forbid-version) - COMPREPLY=( $( _comp_dpkg_installed_packages "$cur" ) ) + COMPREPLY=( \ + $( _xfunc dpkg _comp_dpkg_installed_packages "$cur" ) ) return 0 ;; unhold) @@ -81,18 +81,11 @@ _aptitude() hold unhold purge markauto unmarkauto why why-not \ dist-upgrade full-upgrade download search show \ forbid-version changelog keep-all build-dep \ - add-user-tag remove-user-tag' -- "$cur" ) ) + add-user-tag remove-user-tag versions' -- "$cur" ) ) fi return 0 -} +} && complete -F _aptitude -o default aptitude -} -# 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/completions/arch b/completions/arch new file mode 100644 index 00000000..3bb5f571 --- /dev/null +++ b/completions/arch @@ -0,0 +1,47 @@ +# mailman arch completion -*- shell-script -*- + +# Try to detect whether this is the mailman "arch" to avoid installing +# it for the coreutils/util-linux-ng one. +_have mailmanctl && +_arch() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -w|-g|-d|--welcome-msg|--goodbye-msg|--digest) + COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) + return 0 + ;; + -d|--file) + _filedir + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--wipe --start --end --quiet \ + --help' -- "$cur" ) ) + else + local args=$cword + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -* ]]; then + args=$(($args-1)) + fi + done + case $args in + 1) + _xfunc list_lists _mailman_lists + ;; + 2) + _filedir + ;; + esac + fi + +} && +complete -F _arch arch + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/arping b/completions/arping new file mode 100644 index 00000000..231a63be --- /dev/null +++ b/completions/arping @@ -0,0 +1,31 @@ +# arping(8) completion -*- shell-script -*- + +_arping() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -c|-w) + return + ;; + -I) + _available_interfaces -a + return + ;; + -s) + _ip_addresses + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) + return + fi + + _known_hosts_real "$cur" +} && +complete -F _arping arping + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/arpspoof b/completions/arpspoof new file mode 100644 index 00000000..9c1b99f5 --- /dev/null +++ b/completions/arpspoof @@ -0,0 +1,28 @@ +# arpspoof completion -*- shell-script -*- + +_arpspoof() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _available_interfaces + return 0 + ;; + -t) + _known_hosts_real "$cur" + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + else + _known_hosts_real "$cur" + fi + +} && +complete -F _arpspoof arpspoof + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/asciidoc b/completions/asciidoc new file mode 100644 index 00000000..722614f6 --- /dev/null +++ b/completions/asciidoc @@ -0,0 +1,52 @@ +# asciidoc(1) completion -*- shell-script -*- + +_asciidoc_doctype() +{ + COMPREPLY+=( $( compgen -W 'article book manpage' -- "$cur" ) ) +} + +_asciidoc() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --attribute|-a) + return + ;; + --backend|-b) + COMPREPLY=( $( compgen -W 'docbook html4 xhtml11' -- "$cur" ) ) + return + ;; + --conf-file|-f) + _filedir conf + return + ;; + --doctype|-d) + _asciidoc_doctype + return + ;; + --help|-h) + COMPREPLY=( $( compgen -W 'manpage syntax topics' -- "$cur" ) ) + return + ;; + --out-file|-o) + _filedir + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" "--help manpage" )' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + _filedir +} && +complete -F _asciidoc asciidoc asciidoc.py + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/aspell b/completions/aspell index 5254eee7..a663fa95 100644 --- a/completions/aspell +++ b/completions/aspell @@ -1,6 +1,5 @@ -# bash completion for aspell +# bash completion for aspell -*- shell-script -*- -have aspell && { _aspell_dictionary() { local datadir @@ -10,18 +9,14 @@ _aspell_dictionary() COMPREPLY=( ${COMPREPLY[@]%.alias} ) COMPREPLY=( ${COMPREPLY[@]#$datadir/} ) # Then, add the canonical dicts - COMPREPLY=( "${COMPREPLY[@]}" $( aspell dicts 2>/dev/null ) ) + COMPREPLY+=( $( aspell dicts 2>/dev/null ) ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) } _aspell() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -c|-p|check|--conf|--personal|--repl|--per-conf) @@ -37,7 +32,8 @@ _aspell() return 0 ;; --mode) - COMPREPLY=( $( compgen -W 'none url email sgml tex' -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$( $1 modes 2>/dev/null | \ + awk '{ print $1 }' )" -- "$cur" ) ) return 0 ;; --sug-mode) @@ -52,45 +48,43 @@ _aspell() _aspell_dictionary return 0 ;; + --add-filter|--rem-filter) + COMPREPLY=( $( compgen -W "$( $1 filters 2>/dev/null | \ + awk '{ print $1 }' )" -- "$cur" ) ) + return 0 + ;; esac $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--conf --conf-dir --data-dir --dict-dir \ - --encoding --add-filter --rem-filter --mode \ - --add-extra-dicts --rem-extra-dicts \ - --home-dir --ignore --ignore-accents \ + COMPREPLY=( $( compgen -W '--conf= --conf-dir= --data-dir= --dict-dir= \ + --encoding= --add-filter= --rem-filter= --mode= \ + --add-extra-dicts= --rem-extra-dicts= \ + --home-dir= --ignore= --ignore-accents \ --dont-ignore-accents --ignore-case --dont-ignore-case \ - --ignore-repl --dont-ignore-repl --jargon --keyboard \ - --lang --language-tag --local-data-dir --master \ + --ignore-repl --dont-ignore-repl --jargon --keyboard= \ + --lang= --language-tag --local-data-dir= --master= \ --module --add-module-search-order \ - --rem-module-search-order --per-conf --personal \ - --prefix --repl --run-together --dont-run-together \ - --run-together-limit --run-together-min --save-repl \ - --dont-save-repl --set-prefix --dont-set-prefix --size \ + --rem-module-search-order --per-conf= --personal= \ + --prefix= --repl= --run-together --dont-run-together \ + --run-together-limit= --run-together-min= --save-repl \ + --dont-save-repl --set-prefix --dont-set-prefix --size= \ --spelling --strip-accents --dont-strip-accents \ - --sug-mode --add-word-list-path --rem-word-list-path \ + --sug-mode= --add-word-list-path --rem-word-list-path \ --backup --dont-backup --reverse --dont-reverse \ - --time --dont-time --keymapping --add-email-quote \ - --rem-email-quote --email-margin --add-tex-command \ - --rem-tex-command --tex-check-comments \ + --time --dont-time --keymapping= --add-email-quote= \ + --rem-email-quote= --email-margin= --add-tex-command= \ + --rem-tex-command= --tex-check-comments \ --dont-tex-check-comments --add-tex-extension \ - --rem-tex-extension --add-sgml-check --rem-sgml-check \ + --rem-tex-extension --add-sgml-check= --rem-sgml-check= \ --add-sgml-extension --rem-sgml-extension' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else COMPREPLY=( $( compgen -W 'usage help check pipe list \ config soundslike filter version dump create merge' -- "$cur" ) ) fi - -} +} && complete -F _aspell aspell -} -# 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/completions/autoconf b/completions/autoconf index c8f1b195..fea524e7 100644 --- a/completions/autoconf +++ b/completions/autoconf @@ -1,13 +1,9 @@ -# Completions for autoconf tools +# autoconf(1) completion -*- shell-script -*- -have autoconf && _autoconf() { - COMPREPLY=() - local cur prev split=false - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case "$prev" in --help|-h|--version|-V|--trace|-t) @@ -32,7 +28,8 @@ _autoconf() $split && return 0 if [[ "$cur" == -* ]]; then - _longopt $1 + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace return fi @@ -40,85 +37,4 @@ _autoconf() } && complete -F _autoconf autoconf -have autoreconf || have autoheader && -_autoreconf() -{ - COMPREPLY=() - local cur prev split=false - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case "$prev" in - --help|-h|--version|-V) - return 0 - ;; - --warnings|-W) - local cats=( cross gnu obsolete override portability syntax \ - unsupported ) - COMPREPLY=( $( compgen -W \ - '${cats[@]} ${cats[@]/#/no-} all none error' -- "$cur" ) ) - return 0 - ;; - --prepend-include|-B|--include|-I) - _filedir -d - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - _longopt $1 - return 0 - fi - - if [[ $1 == autoheader ]] ; then - _filedir '@(ac|in)' - else - _filedir -d - fi -} && -complete -F _autoreconf autoreconf autoheader - -have autoscan || have autoupdate && -_autoscan() -{ - COMPREPLY=() - local cur prev split=false - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case "$prev" in - --help|-h|--version|-V) - return 0 - ;; - --prepend-include|-B|--include|-I) - _filedir -d - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - _longopt $1 - return 0 - fi - - if [[ $1 == autoupdate ]] ; then - _filedir '@(ac|in)' - else - _filedir -d - fi -} && -complete -F _autoscan autoscan autoupdate - -# 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/completions/automake b/completions/automake index 7ed87453..78bc6db2 100644 --- a/completions/automake +++ b/completions/automake @@ -1,13 +1,9 @@ -# Completions for automake tools +# automake(1) completion -*- shell-script -*- -have automake && _automake() { - COMPREPLY=() - local cur prev split=false - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case "$prev" in --help|--version) @@ -28,7 +24,8 @@ _automake() $split && return 0 if [[ "$cur" == -* ]]; then - _longopt $1 + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace return fi @@ -36,45 +33,4 @@ _automake() } && complete -F _automake automake automake-1.11 -have aclocal && -_aclocal() -{ - COMPREPLY=() - local cur prev split=false - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case "$prev" in - --help|--print-ac-dir|--version) - return 0 - ;; - --acdir|-I) - _filedir -d - return 0 - ;; - --output) - _filedir - return 0 - ;; - --warnings|-W) - local cats=( syntax unsupported ) - COMPREPLY=( $( compgen -W \ - '${cats[@]} ${cats[@]/#/no-} all none error' -- "$cur" ) ) - return 0 - ;; - esac - - $split && return 0 - - _longopt $1 -} && -complete -F _aclocal aclocal aclocal-1.11 - -# 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/completions/autoreconf b/completions/autoreconf new file mode 100644 index 00000000..8de40c88 --- /dev/null +++ b/completions/autoreconf @@ -0,0 +1,41 @@ +# autoreconf(1) completion -*- shell-script -*- + +_autoreconf() +{ + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + --help|-h|--version|-V) + return 0 + ;; + --warnings|-W) + local cats=( cross gnu obsolete override portability syntax \ + unsupported ) + COMPREPLY=( $( compgen -W \ + '${cats[@]} ${cats[@]/#/no-} all none error' -- "$cur" ) ) + return 0 + ;; + --prepend-include|-B|--include|-I) + _filedir -d + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + if [[ $1 == autoheader ]] ; then + _filedir '@(ac|in)' + else + _filedir -d + fi +} && +complete -F _autoreconf autoreconf autoheader + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/autorpm b/completions/autorpm index 6a5f7620..377ac987 100644 --- a/completions/autorpm +++ b/completions/autorpm @@ -1,12 +1,9 @@ -# autorpm(8) completion +# autorpm(8) completion -*- shell-script -*- -have autorpm && _autorpm() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return COMPREPLY=( $( compgen -W '--notty --debug --help --version auto add \ fullinfo info help install list remove set' -- "$cur" ) ) @@ -14,10 +11,4 @@ _autorpm() } && complete -F _autorpm autorpm -# 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/completions/autoscan b/completions/autoscan new file mode 100644 index 00000000..80b051cf --- /dev/null +++ b/completions/autoscan @@ -0,0 +1,34 @@ +# autoscan(1) completion -*- shell-script -*- + +_autoscan() +{ + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + --help|-h|--version|-V) + return 0 + ;; + --prepend-include|-B|--include|-I) + _filedir -d + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + if [[ $1 == autoupdate ]] ; then + _filedir '@(ac|in)' + else + _filedir -d + fi +} && +complete -F _autoscan autoscan autoupdate + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/badblocks b/completions/badblocks new file mode 100644 index 00000000..2dc8eb43 --- /dev/null +++ b/completions/badblocks @@ -0,0 +1,32 @@ +# badblocks(8) completion -*- shell-script -*- + +_badblocks() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -b|-c|-e|-d|-p|-t) + return 0 + ;; + -i|-o) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + # Filter out -w (dangerous) and -X (internal use) + for i in ${!COMPREPLY[@]}; do + [[ ${COMPREPLY[i]} == -[wX] ]] && unset COMPREPLY[i] + done + return 0 + fi + + cur=${cur:=/dev/} + _filedir +} && +complete -F _badblocks badblocks + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/bash-builtins b/completions/bash-builtins deleted file mode 100644 index 3eba8a11..00000000 --- a/completions/bash-builtins +++ /dev/null @@ -1,128 +0,0 @@ -# bash alias completion -# -_alias() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - case $COMP_LINE in - *[^=]) - COMPREPLY=( $( compgen -A alias -- "$cur" ) ) - ;; - *=) - COMPREPLY=( "$( alias ${cur%=} 2>/dev/null | sed \ - -e 's|^alias '"$cur"'\(.*\)$|\1|' )" ) - ;; - esac -} -complete -F _alias -o nospace alias - -# bash export completion -# -_export() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - case $COMP_LINE in - *=\$*) - COMPREPLY=( $( compgen -v -P '$' -- "${cur#*=\$}" ) ) - ;; - *[^=]) - COMPREPLY=( $( compgen -v -S '=' -- "$cur" ) ) - ;; - *=) - COMPREPLY=( "$( eval echo -n \"$`echo ${cur%=}`\" | - ( echo -n \' - sed -e 's/'\''/'\''\\\'\'''\''/g' - echo -n \' ) )" ) - ;; - esac -} -complete -F _export -o default -o nospace export - -# bash shell function completion -# -_function() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [[ $1 == @(declare|typeset) ]]; then - if [ "$prev" = -f ]; then - COMPREPLY=( $( compgen -A function -- "$cur" ) ) - elif [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -f -F -i -r -x -p' -- "$cur" ) ) - fi - elif [ $COMP_CWORD -eq 1 ]; then - COMPREPLY=( $( compgen -A function -- "$cur" ) ) - else - COMPREPLY=( "() $( type -- ${COMP_WORDS[1]} | sed -e 1,2d )" ) - fi -} -complete -F _function function declare typeset - -# bash complete completion -# -_complete() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -o) - COMPREPLY=( $( compgen -W 'bashdefault default dirnames filenames \ - nospace plusdirs' -- "$cur" ) ) - return 0 - ;; - - -A) - COMPREPLY=( $( compgen -W 'alias arrayvar binding builtin command \ - directory disabled enabled export file function group \ - helptopic hostname job keyword running service setopt shopt \ - signal stopped user variable' -- "$cur" ) ) - return 0 - ;; - - -C) - COMPREPLY=( $( compgen -A command -- "$cur" ) ) - return 0 - ;; - -F) - COMPREPLY=( $( compgen -A function -- "$cur" ) ) - return 0 - ;; - -p|-r) - COMPREPLY=( $( complete -p | sed -e 's|.* ||' ) ) - COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) - return 0 - ;; - - esac - - if [[ "$cur" == -* ]]; then - # relevant options completion - local opts="-a -b -c -d -e -f -g -j -k -o -s -u -v -A -G -W -P -S -X" - [[ $1 != compgen ]] && opts="$opts -F -C" - COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) - else - COMPREPLY=( $( compgen -A command -- "$cur" ) ) - fi -} -complete -F _complete compgen complete - -# 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/completions/bind-utils b/completions/bind-utils deleted file mode 100644 index 040d1975..00000000 --- a/completions/bind-utils +++ /dev/null @@ -1,23 +0,0 @@ -# bash completion for nslookup - -have nslookup && -_nslookup() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - COMPREPLY=( $( compgen -P '-' -W 'all class= debug d2 domain= srchlist= \ - defname search port= querytype= type= recurse retry root timeout vc \ - ignoretc' -- "$cur" ) ) -} && -complete -F _nslookup nslookup - -# 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/completions/bitkeeper b/completions/bitkeeper deleted file mode 100644 index 4c312a14..00000000 --- a/completions/bitkeeper +++ /dev/null @@ -1,26 +0,0 @@ -# BitKeeper completion adapted from code by Bart Trojanowski <bart@jukie.net> - -have bk && -_bk() { - local BKCMDS - - COMPREPLY=() - _get_comp_words_by_ref cur - - BKCMDS="$( bk help topics | awk '/^ bk/ { print $4 }' | \ - xargs printf '%s ' )" - - COMPREPLY=( $( compgen -W "$BKCMDS" -- "$cur" ) ) - _filedir - - return 0 -} && -complete -F _bk bk - -# 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/completions/bk b/completions/bk new file mode 100644 index 00000000..8be6fb76 --- /dev/null +++ b/completions/bk @@ -0,0 +1,19 @@ +# BitKeeper completion -*- shell-script -*- +# adapted from code by Bart Trojanowski <bart@jukie.net> + +_bk() +{ + local cur prev words cword + _init_completion || return + + local BKCMDS="$( bk help topics 2>/dev/null | \ + awk '/^ bk/ { print $4 }' | xargs printf '%s ' )" + + COMPREPLY=( $( compgen -W "$BKCMDS" -- "$cur" ) ) + _filedir + + return 0 +} && +complete -F _bk bk + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/brctl b/completions/brctl index 1be86af1..441aa08f 100644 --- a/completions/brctl +++ b/completions/brctl @@ -1,15 +1,13 @@ -# bash completion for brctl +# bash completion for brctl -*- shell-script -*- -have brctl && _brctl() { - local cur command + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur - command=${COMP_WORDS[1]} + local command=${words[1]} - case $COMP_CWORD in + case $cword in 1) COMPREPLY=( $( compgen -W "addbr delbr addif delif \ setageing setbridgeprio setfd sethello \ @@ -39,10 +37,4 @@ _brctl() } && complete -F _brctl -o default brctl -# 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/completions/bittorrent b/completions/btdownloadheadless.py index 761d0836..60d1962d 100644 --- a/completions/bittorrent +++ b/completions/btdownloadheadless.py @@ -1,13 +1,9 @@ -# btdownloadheadless(1) completion +# btdownloadheadless(1) completion -*- shell-script -*- -have btdownloadheadless.py || have btdownloadcurses.py || \ -have btdownloadgui.py && _btdownload() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --responsefile|--saveas) @@ -30,12 +26,7 @@ _btdownload() _filedir fi } && -complete -F _btdownload btdownloadheadless.py btdownloadcurses.py btdownloadgui.py +complete -F _btdownload btdownloadheadless.py btdownloadcurses.py \ + btdownloadgui.py -# 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/completions/bzip2 b/completions/bzip2 index 7e2f9fd0..6e6c68bb 100644 --- a/completions/bzip2 +++ b/completions/bzip2 @@ -1,13 +1,9 @@ -# bash completion for bzip2 +# bash completion for bzip2 -*- shell-script -*- -have bzip2 || have pbzip2 && _bzip2() { - local cur prev xspec helpopts - - COMPREPLY=() - _get_comp_words_by_ref cur prev - helpopts=`_parse_help ${COMP_WORDS[0]}` + local cur prev words cword + _init_completion || return case $prev in -b|-h|--help|-p) @@ -16,14 +12,14 @@ _bzip2() esac if [[ "$cur" == -* ]]; then + local helpopts=$( _parse_help "$1" ) COMPREPLY=( $( compgen -W "${helpopts//#/} -2 -3 -4 -5 -6 -7 -8 -9" \ -- "$cur" ) ) return 0 fi - local IFS=$'\n' + local IFS=$'\n' xspec="*.bz2" - xspec="*.bz2" if [[ "$prev" == --* ]]; then [[ "$prev" == --decompress || \ "$prev" == --list || \ @@ -36,16 +32,10 @@ _bzip2() _expand || return 0 - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ $( compgen -d -- "$cur" ) ) } && -complete -F _bzip2 bzip2 pbzip2 - -# Local variables: -# mode: shell-script -# sh-basic-offset: 4 -# sh-indent-comment: t -# indent-tabs-mode: nil -# End: +complete -F _bzip2 bzip2 pbzip2 lbzip2 + # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/cal b/completions/cal new file mode 100644 index 00000000..880b0b35 --- /dev/null +++ b/completions/cal @@ -0,0 +1,34 @@ +# cal(1) completion -*- shell-script -*- + +_cal() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -m) + if [[ $OSTYPE == *bsd* ]]; then + COMPREPLY=( $( compgen -W '{1..12}' -- "$cur" ) ) + return + fi + ;; + -s) + [[ $OSTYPE == *bsd* ]] && return + ;; + -A|-B|-d|-H) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return + fi + + local args + _count_args + [[ $args -eq 1 ]] && COMPREPLY=( $( compgen -W '{1..12}' -- "$cur" ) ) +} && +complete -F _cal cal ncal + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/cancel b/completions/cancel new file mode 100644 index 00000000..3e9a3781 --- /dev/null +++ b/completions/cancel @@ -0,0 +1,12 @@ +# cancel(1) completion -*- shell-script -*- + +_cancel() +{ + local cur prev words cword + _init_completion || return + + COMPREPLY=( $( compgen -W "$( lpstat 2>/dev/null | cut -d' ' -f1 )" -- "$cur" ) ) +} && +complete -F _cancel cancel + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/cardctl b/completions/cardctl index 1af7491b..0532d6ef 100644 --- a/completions/cardctl +++ b/completions/cardctl @@ -1,24 +1,15 @@ -# Linux cardctl(8) completion +# Linux cardctl(8) completion -*- shell-script -*- -have cardctl || have pccardctl && _cardctl() { - local cur + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur - - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W 'status config ident suspend \ resume reset eject insert scheme' -- "$cur" ) ) fi } && complete -F _cardctl cardctl pccardctl -# 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/completions/cfagent b/completions/cfagent new file mode 100644 index 00000000..f3e227a4 --- /dev/null +++ b/completions/cfagent @@ -0,0 +1,21 @@ +# cfagent completion -*- shell-script -*- + +_cfagent() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -f|--file) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + fi +} && +complete -F _cfagent cfagent + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/cfengine b/completions/cfengine deleted file mode 100644 index 50a13840..00000000 --- a/completions/cfengine +++ /dev/null @@ -1,88 +0,0 @@ -# bash completion for cfengine - -have cfagent && { -_cfagent_options() -{ - COMPREPLY=( $( compgen -W '--sysadm --force-net-copy --no-check-files \ - --no-check-mounts --debug --define --no-edits --enforce-links --file \ - --help --no-hard-classes --no-ifconfig --inform --no-copy --no-lock \ - --traverse-links --delete-stale-links --no-mount --no-modules \ - --dry-run --negate --parse-only --no-processes --no-splay \ - --no-commands --silent --no-tidy --use-env --underscore-classes \ - --verbose --version --no-preconf --no-links --quiet' -- "$cur" ) ) -} - -_cfagent() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -f|--file) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - _cfagent_options - fi -} -complete -F _cfagent cfagent - -_cfrun() -{ - local i section cfinputs cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - section=1 - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -- ]]; then - section=$((section + 1)) - fi - done - - case $section in - 1) - case $prev in - -f) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-f -h -d -S -T -v' -- $cur ) ) - else - hostfile=${CFINPUTS:-/var/lib/cfengine/inputs}/cfrun.hosts - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -f ]]; then - hostfile=${COMP_WORDS[i+1]} - break - fi - done - [ ! -f $hostfile ] && return 0 - - COMPREPLY=( $(compgen -W "$( command grep -v \ - -E '(=|^$|^#)' $hostfile )" -- "$cur" ) ) - fi - ;; - 2) - _cfagent_options - ;; - esac -} -complete -F _cfrun cfrun -} - -# 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/completions/cfrun b/completions/cfrun new file mode 100644 index 00000000..288bcf43 --- /dev/null +++ b/completions/cfrun @@ -0,0 +1,47 @@ +# cfrun completion -*- shell-script -*- + +_cfrun() +{ + local cur prev words cword + _init_completion || return + + local i section=1 + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -- ]]; then + section=$((section + 1)) + fi + done + + case $section in + 1) + case $prev in + -f) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-f -h -d -S -T -v' -- $cur ) ) + else + hostfile=${CFINPUTS:-/var/lib/cfengine/inputs}/cfrun.hosts + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -f ]]; then + hostfile=${words[i+1]} + break + fi + done + [ ! -f $hostfile ] && return 0 + + COMPREPLY=( $(compgen -W "$( command grep -v \ + -E '(=|^$|^#)' $hostfile )" -- "$cur" ) ) + fi + ;; + 2) + COMPREPLY=( $( compgen -W '$( _parse_help cfagent )' -- "$cur" ) ) + ;; + esac +} && +complete -F _cfrun cfrun + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/chage b/completions/chage new file mode 100644 index 00000000..1842bb8a --- /dev/null +++ b/completions/chage @@ -0,0 +1,26 @@ +# chage(1) completion -*- shell-script -*- + +_chage() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -d|--lastday|-E|--expiredate|-h|--help|-I|--inactive|-m|--mindays|\ + -M|--maxdays|-W|--warndays) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + + COMPREPLY=( $( compgen -u -- "$cur" ) ) +} && +complete -F _chage chage + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/change_pw b/completions/change_pw new file mode 100644 index 00000000..98852583 --- /dev/null +++ b/completions/change_pw @@ -0,0 +1,25 @@ +# mailman change_pw completion -*- shell-script -*- + +_change_pw() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -l|--listname) + _xfunc list_lists _mailman_lists + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--all --domain --listname \ + --password --quiet --help' -- "$cur" ) ) + fi + +} && +complete -F _change_pw change_pw + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/check_db b/completions/check_db new file mode 100644 index 00000000..651b375c --- /dev/null +++ b/completions/check_db @@ -0,0 +1,17 @@ +# mailman check_db completion -*- shell-script -*- + +_check_db() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--all --verbose --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _check_db check_db + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/check_perms b/completions/check_perms new file mode 100644 index 00000000..472b9266 --- /dev/null +++ b/completions/check_perms @@ -0,0 +1,15 @@ +# mailman check_perms completion -*- shell-script -*- + +_check_perms() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-f -v -h' -- "$cur" ) ) + fi + +} && +complete -F _check_perms check_perms + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/chgrp b/completions/chgrp new file mode 100644 index 00000000..7355a680 --- /dev/null +++ b/completions/chgrp @@ -0,0 +1,40 @@ +# chgrp(1) completion -*- shell-script -*- + +_chgrp() +{ + local cur prev words cword split + _init_completion -s || return + + cur=${cur//\\\\/} + + if [[ "$prev" == --reference ]]; then + _filedir + return 0 + fi + + $split && return 0 + + # options completion + if [[ "$cur" == -* ]]; then + local w opts + for w in "${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 [[ $cword -eq 1 && "$cur" != -* || "$prev" == -* ]]; then + _allowed_groups "$cur" + else + _filedir || return 0 + fi + + return 0 +} && +complete -F _chgrp chgrp + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/chkconfig b/completions/chkconfig index 2d02e56e..31a575e3 100644 --- a/completions/chkconfig +++ b/completions/chkconfig @@ -1,14 +1,9 @@ -# chkconfig(8) completion +# chkconfig(8) completion -*- shell-script -*- -have chkconfig && _chkconfig() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in --level=[1-6]|[1-6]|--list|--add|--del|--override) @@ -16,7 +11,7 @@ _chkconfig() return 0 ;; --level) - COMPREPLY=( $( compgen -W '1 2 3 4 5 6' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{1..6}' -- "$cur" ) ) return 0 ;; esac @@ -26,7 +21,7 @@ _chkconfig() if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--list --add --del --override --level' -- "$cur" ) ) else - if [[ $COMP_CWORD -eq 2 || $COMP_CWORD -eq 4 ]]; then + if [[ $cword -eq 2 || $cword -eq 4 ]]; then COMPREPLY=( $( compgen -W 'on off reset resetpriorities' -- "$cur" ) ) else _services @@ -35,10 +30,4 @@ _chkconfig() } && complete -F _chkconfig chkconfig -# 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/completions/chown b/completions/chown new file mode 100644 index 00000000..f9bd9686 --- /dev/null +++ b/completions/chown @@ -0,0 +1,46 @@ +# chown(1) completion -*- shell-script -*- + +_chown() +{ + local cur prev words cword split + # Don't treat user:group as separate words. + _init_completion -s -n : || return + + 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 "${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 -eq 1 ]]; then + _usergroup -u + else + _filedir + fi + fi +} && +complete -F _chown chown + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/chpasswd b/completions/chpasswd new file mode 100644 index 00000000..d8a7e62c --- /dev/null +++ b/completions/chpasswd @@ -0,0 +1,29 @@ +# chpasswd(8) completion -*- shell-script -*- + +_chpasswd() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -c|--crypt) + COMPREPLY=( $( compgen -W 'DES MD5 NONE SHA256 SHA512' \ + -- "$cur" ) ) + return 0 + ;; + -s|--sha-rounds) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi +} && +complete -F _chpasswd chpasswd + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/chrpath b/completions/chrpath new file mode 100644 index 00000000..29a71851 --- /dev/null +++ b/completions/chrpath @@ -0,0 +1,27 @@ +# chrpath(1) completion -*- shell-script -*- + +_chrpath() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -v|--version|-h|--help) + return + ;; + -r|--replace) + _filedir -d + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return + fi + + _filedir +} && +complete -F _chrpath chrpath + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/chsh b/completions/chsh index 1af3630f..f65291a1 100644 --- a/completions/chsh +++ b/completions/chsh @@ -1,11 +1,9 @@ -# chsh(1) completion +# chsh(1) completion -*- shell-script -*- _chsh() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --list-shells|--help|-v|--version) @@ -17,21 +15,14 @@ _chsh() ;; esac - if [[ "$cur" == -* && "$( uname -s )" == @(Linux|GNU|GNU/*) ]]; then - COMPREPLY=( $( compgen -W '--shell --list-shells --help --version' \ - -- "$cur" ) ) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) else - COMPREPLY=( $( compgen -u -- "$cur" ) ) + _allowed_users fi return 0 -} +} && complete -F _chsh chsh -# 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/completions/cksfv b/completions/cksfv index 1f83824b..d21bcf39 100644 --- a/completions/cksfv +++ b/completions/cksfv @@ -1,20 +1,17 @@ -# cksfv completion by Chris <xris@forevermore.net> +# cksfv completion by Chris <xris@forevermore.net> -*- shell-script -*- -have cksfv && _cksfv() { - local cur prev + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [ $COMP_CWORD -eq 1 ]; then - COMPREPLY=( $( compgen -W '-C -f -i -q -v' -- "$cur" ) ) + if [ $cword -eq 1 ]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) return 0 fi case "$prev" in - -C) + -C|-g) _filedir -d return 0 ;; @@ -29,10 +26,4 @@ _cksfv() } && complete -F _cksfv cksfv -# 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/completions/cleanarch b/completions/cleanarch new file mode 100644 index 00000000..df18aaf5 --- /dev/null +++ b/completions/cleanarch @@ -0,0 +1,16 @@ +# mailman cleanarch completion -*- shell-script -*- + +_cleanarch() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--status --dry-run --quiet \ + --help' -- "$cur" ) ) + fi + +} && +complete -F _cleanarch cleanarch + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/clisp b/completions/clisp index 074f692c..fd19b252 100644 --- a/completions/clisp +++ b/completions/clisp @@ -1,13 +1,11 @@ +# -*- shell-script -*- # bash brogrammable completion for various Common Lisp implementations by # Nikodemus Siivola <nikodemus@random-state.net> -have clisp && _clisp() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return # completing an option (may or may not be separated by a space) if [[ "$cur" == -* ]]; then @@ -22,10 +20,4 @@ _clisp() } && complete -F _clisp -o default clisp -# 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/completions/clone_member b/completions/clone_member new file mode 100644 index 00000000..74608f96 --- /dev/null +++ b/completions/clone_member @@ -0,0 +1,25 @@ +# mailman clone_member completion -*- shell-script -*- + +_clone_member() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -l|--listname) + _xfunc list_lists _mailman_lists + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--listname --remove --admin \ + --quiet --nomodify --help' -- "$cur" ) ) + fi + +} && +complete -F _clone_member clone_member + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/complete b/completions/complete new file mode 100644 index 00000000..ebf90237 --- /dev/null +++ b/completions/complete @@ -0,0 +1,50 @@ +# bash complete completion -*- shell-script -*- + +_complete() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -o) + COMPREPLY=( $( compgen -W 'bashdefault default dirnames filenames \ + nospace plusdirs' -- "$cur" ) ) + return 0 + ;; + + -A) + COMPREPLY=( $( compgen -W 'alias arrayvar binding builtin command \ + directory disabled enabled export file function group \ + helptopic hostname job keyword running service setopt shopt \ + signal stopped user variable' -- "$cur" ) ) + return 0 + ;; + + -C) + COMPREPLY=( $( compgen -A command -- "$cur" ) ) + return 0 + ;; + -F) + COMPREPLY=( $( compgen -A function -- "$cur" ) ) + return 0 + ;; + -p|-r) + COMPREPLY=( $( complete -p | sed -e 's|.* ||' ) ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) + return 0 + ;; + + esac + + if [[ "$cur" == -* ]]; then + # relevant options completion + local opts="-a -b -c -d -e -f -g -j -k -o -s -u -v -A -G -W -P -S -X" + [[ $1 != compgen ]] && opts+=" -F -C" + COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) + else + COMPREPLY=( $( compgen -A command -- "$cur" ) ) + fi +} && +complete -F _complete compgen complete + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/config_list b/completions/config_list new file mode 100644 index 00000000..50fa0500 --- /dev/null +++ b/completions/config_list @@ -0,0 +1,27 @@ +# mailman config_list completion -*- shell-script -*- + +_config_list() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -i|-o|--inputfile|--outputfile) + _filedir + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--inputfile --outputfile \ + --checkonly --verbose --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _config_list config_list + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/configure b/completions/configure index 1b207692..8e28d451 100644 --- a/completions/configure +++ b/completions/configure @@ -1,17 +1,22 @@ -# bash completion for configure +# bash completion for configure -*- shell-script -*- _configure() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in + -h|--help|-V|--version|--program-prefix|--program-suffix|\ + --program-transform-name) + return + ;; + --*file) + _filedir + return + ;; --*prefix|--*dir) _filedir -d + return ;; esac @@ -26,19 +31,12 @@ _configure() awk '/^ --[A-Za-z]/ { print $1; \ if ($2 ~ /--[A-Za-z]/) print $2 }' | sed -e 's/[[,].*//g' )" \ -- "$cur" ) ) + [[ $COMPREPLY == *=* ]] && compopt -o nospace else - COMPREPLY=( $( compgen -W "$( $1 --help 2>&1 | \ - awk '/^ --[A-Za-z]/ { print $1; \ - if ($2 ~ /--[A-Za-z]/) print $2 }' | sed -e 's/[[,=].*//g' )" \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace fi -} +} && complete -F _configure configure -# 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/completions/convert b/completions/convert new file mode 100644 index 00000000..c86293a6 --- /dev/null +++ b/completions/convert @@ -0,0 +1,328 @@ +# bash completion for ImageMagick -*- shell-script -*- + +_ImageMagick() +{ + case $prev in + -channel) + COMPREPLY=( $( compgen -W 'Red Green Blue Opacity \ + Matte Cyan Magenta Yellow Black' -- "$cur" ) ) + return 0 + ;; + -colormap) + COMPREPLY=( $( compgen -W 'shared private' -- "$cur" ) ) + return 0 + ;; + -colorspace) + COMPREPLY=( $( compgen -W 'GRAY OHTA RGB Transparent \ + XYZ YCbCr YIQ YPbPr YUV CMYK' -- "$cur" ) ) + return 0 + ;; + -compose) + COMPREPLY=( $( compgen -W 'Over In Out Atop Xor Plus \ + Minus Add Subtract Difference Multiply Bumpmap\ + Copy CopyRed CopyGreen CopyBlue CopyOpacity' -- "$cur" ) ) + return 0 + ;; + -compress) + COMPREPLY=( $( compgen -W 'None BZip Fax Group4 JPEG \ + Lossless LZW RLE Zip' -- "$cur" ) ) + return 0 + ;; + -dispose) + COMPREPLY=( $( compgen -W 'Undefined None Background Previous' \ + -- "$cur" ) ) + return 0 + ;; + -encoding) + COMPREPLY=( $( compgen -W 'AdobeCustom AdobeExpert \ + AdobeStandard AppleRoman BIG5 GB2312 Latin2 \ + None SJIScode Symbol Unicode Wansung' -- "$cur")) + return 0 + ;; + -endian) + COMPREPLY=( $( compgen -W 'MSB LSB' -- "$cur" ) ) + return 0 + ;; + -filter) + COMPREPLY=( $( compgen -W 'Point Box Triangle Hermite \ + Hanning Hamming Blackman Gaussian Quadratic \ + Cubic Catrom Mitchell Lanczos Bessel Sinc' -- "$cur" ) ) + return 0 + ;; + -format) + COMPREPLY=( $( compgen -W "$( convert -list format | awk \ + '/ [r-][w-][+-] / { sub("[*]$","",$1); print tolower($1) }' )" \ + -- "$cur" ) ) + return 0 + ;; + -gravity) + COMPREPLY=( $( compgen -W 'Northwest North NorthEast \ + West Center East SouthWest South SouthEast' -- "$cur" ) ) + return 0 + ;; + -intent) + COMPREPLY=( $( compgen -W 'Absolute Perceptual \ + Relative Saturation' -- "$cur" ) ) + return 0 + ;; + -interlace) + COMPREPLY=( $( compgen -W 'None Line Plane Partition' -- "$cur" ) ) + return 0 + ;; + -limit) + COMPREPLY=( $( compgen -W 'Disk File Map Memory' -- "$cur" ) ) + return 0 + ;; + -list) + COMPREPLY=( $( compgen -W 'Delegate Format Magic Module Resource \ + Type' -- "$cur" ) ) + return 0 + ;; + -map) + COMPREPLY=( $( compgen -W 'best default gray red green blue' \ + -- "$cur" ) ) + _filedir + return 0 + ;; + -noise) + COMPREPLY=( $( compgen -W 'Uniform Gaussian Multiplicative \ + Impulse Laplacian Poisson' -- "$cur" ) ) + return 0 + ;; + -preview) + COMPREPLY=( $( compgen -W 'Rotate Shear Roll Hue \ + Saturation Brightness Gamma Spiff \ + Dull Grayscale Quantize Despeckle \ + ReduceNoise AddNoise Sharpen Blur \ + Treshold EdgeDetect Spread Shade \ + Raise Segment Solarize Swirl Implode \ + Wave OilPaint CharcoalDrawing JPEG' -- "$cur" ) ) + return 0 + ;; + -mask|-profile|-texture|-tile|-write) + _filedir + return 0 + ;; + -type) + COMPREPLY=( $( compgen -W 'Bilevel Grayscale Palette PaletteMatte \ + TrueColor TrueColorMatte ColorSeparation ColorSeparationlMatte \ + Optimize' -- "$cur" ) ) + return 0 + ;; + -units) + COMPREPLY=( $( compgen -W 'Undefined PixelsPerInch \ + PixelsPerCentimeter' -- "$cur" ) ) + return 0 + ;; + -virtual-pixel) + COMPREPLY=( $( compgen -W 'Constant Edge mirror tile' -- "$cur" ) ) + return 0 + ;; + -visual) + COMPREPLY=( $( compgen -W 'StaticGray GrayScale StaticColor \ + PseudoColor TrueColor DirectColor defaut visualid' -- "$cur" )) + return 0 + ;; + esac + + return 1 +} + +_convert() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+adjoin +append +compress \ + +contrast +debug +dither +endian +gamma +label +map \ + +mask +matte +negate +noise +page +raise +render \ + +write' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _convert convert + +_mogrify() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \ + +endian +gamma +label +map +mask +matte +negate +page \ + +raise' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _mogrify mogrify + +_display() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \ + +endian +gamma +label +map +matte +negate +page \ + +raise +write' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _display display + +_animate() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug +dither +gamma +map +matte' \ + -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _animate animate + +_identify() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _identify identify + +_montage() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+adjoin +compress +debug +dither \ + +endian +gamma +label +matte +page' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _montage montage + +_composite() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+compress +debug +dither +endian +label \ + +matte +negate +page +write' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _composite composite + +_compare() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _compare compare + +_conjure() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _conjure conjure + +_import() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _import import + +_stream() +{ + local cur prev words cword + _init_completion || return + + _ImageMagick && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) + else + _filedir + fi +} && +complete -F _stream stream + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/coreutils b/completions/coreutils deleted file mode 100644 index 33d58cf7..00000000 --- a/completions/coreutils +++ /dev/null @@ -1,149 +0,0 @@ -# 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. - _get_comp_words_by_ref -n : cur prev - - _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 -u - else - _filedir - fi - fi -} && -complete -F _chown chown - - -# chgrp(1) completion -# -have chgrp && -_chgrp() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - cur=${cur//\\\\/} - - _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 - _allowed_groups - else - _filedir || return 0 - fi - - return 0 -} && -complete -F _chgrp chgrp - -# id(1) completion -# -have id && -_id() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - 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 - -# mktemp(1) completion -# -have mktemp && -_mktemp() -{ - COMPREPLY=() - local cur prev split=false - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case "$prev" in - --help|--version|--suffix) - return 0 - ;; - --tmpdir|-p) - _filedir -d - return 0 - ;; - esac - - $split && return 0 - - [[ "$cur" == -* ]] && \ - COMPREPLY=( $( compgen -W '-d -u -q -p -t' -- "$cur" ) ) -} && -complete -F _mktemp mktemp - -# 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/completions/cowsay b/completions/cowsay index c6d797aa..47c2e52c 100644 --- a/completions/cowsay +++ b/completions/cowsay @@ -1,12 +1,9 @@ -# bash completion for cowsay +# bash completion for cowsay -*- shell-script -*- -have cowsay && _cowsay() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -f) @@ -22,10 +19,4 @@ _cowsay() } && complete -F _cowsay -o default cowsay cowthink -# 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/completions/cpan2dist b/completions/cpan2dist index 13f568af..f6a67ac6 100644 --- a/completions/cpan2dist +++ b/completions/cpan2dist @@ -1,12 +1,9 @@ -# bash completion for cpan2dist +# bash completion for cpan2dist -*- shell-script -*- -have cpan2dist && _cpan2dist() { - local cur prev packagelist cpandirs - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --format) @@ -23,30 +20,18 @@ _cpan2dist() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --skiptest --force --install \ - --verbose --keepsource --makefile --buildprereq \ - --archive --flushcache --defaults --edit-metafile \ - --format --ban --banlist --ignore --ignorelist \ - --modulelist --logfile --timeout --set-config \ - --set-program --dist-opts --default-banlist \ - --default-ignorelist' -- $cur ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else - cpandirs=( "$HOME/.cpanplus/" "$HOME/.cpan/source/modules/" ) + local cpandirs=( "$HOME/.cpanplus/" "$HOME/.cpan/source/modules/" ) + local packagelist for dir in ${cpandirs[@]}; do [[ -d "$dir" && -r "$dir/02packages.details.txt.gz" ]] && \ packagelist="$dir/02packages.details.txt.gz" done - COMPREPLY=( $( zgrep "^${cur//-/::}" \ - $packagelist 2>/dev/null \ - | awk '{print $1}' | sed -e 's/::/-/g' ) ) + [[ $packagelist ]] && COMPREPLY=( $( zgrep "^${cur//-/::}" \ + $packagelist 2>/dev/null | awk '{print $1}' | sed -e 's/::/-/g' ) ) fi } && complete -F _cpan2dist -o default cpan2dist -# 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/completions/cpio b/completions/cpio index 5ead0184..ebbe5c57 100644 --- a/completions/cpio +++ b/completions/cpio @@ -1,6 +1,5 @@ -# bash completion for cpio +# bash completion for cpio -*- shell-script -*- -have cpio && { _cpio_format() { COMPREPLY=( $( compgen -W 'bin odc newc crc tar ustar hpbin hpodc' -- "$cur" ) ) @@ -8,12 +7,8 @@ _cpio_format() _cpio() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s -n : || return # --name value style option case $prev in @@ -30,7 +25,7 @@ _cpio() return 0 ;; --rsh-command) - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -c -- "$cur" ) ) return 0 ;; @@ -38,11 +33,11 @@ _cpio() $split && return 0 - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through \ -? --help --license --usage --version' -- "$cur" ) ) else - case ${COMP_WORDS[1]} in + case ${words[1]} in -o|--create) if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-0 -a -c -v -A -B\ @@ -90,14 +85,7 @@ _cpio() ;; esac fi -} +} && complete -F _cpio cpio -} -# 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/completions/cppcheck b/completions/cppcheck new file mode 100644 index 00000000..5dd30931 --- /dev/null +++ b/completions/cppcheck @@ -0,0 +1,60 @@ +# bash completion for cppcheck(1) -*- shell-script -*- + +_cppcheck() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --append|--exitcode-suppressions|--file-list|--rule-file|\ + --suppressions-list|-i) + _filedir + return + ;; + -D|--rule|--suppress|--template) + return + ;; + --enable) + COMPREPLY=( $( compgen -W 'all style performance portability + information unusedFunction missingInclude' -- "$cur" ) ) + return + ;; + --error-exitcode) + COMPREPLY=( $( compgen -W '{0..255}' -- "$cur" ) ) + return + ;; + -I) + _filedir -d + return + ;; + -j) + COMPREPLY=( $( compgen -W '{2..16}' -- "$cur" ) ) + return + ;; + --std) + COMPREPLY=( $( compgen -W 'c99 posix' -- "$cur" ) ) + return + ;; + --platform) + COMPREPLY=( $( compgen -W 'unix32 unix64 win32A win32W win64' \ + -- "$cur" ) ) + return + ;; + --xml-version) + COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + else + _filedir @(cpp|cxx|cc|c++|c|tpp|txx) + fi +} && +complete -F _cppcheck cppcheck + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/crontab b/completions/crontab index d2ee23a0..ddd0066c 100644 --- a/completions/crontab +++ b/completions/crontab @@ -1,11 +1,9 @@ -# crontab(1) completion +# crontab(1) completion -*- shell-script -*- -have crontab && _crontab() { - local cur prev - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -u) @@ -14,47 +12,37 @@ _crontab() ;; esac - local i opts=" -u -l -r -e" # leading space at start is significant... - [ "$(uname -s)" = Linux ] && opts="$opts -i" - [ -e /etc/selinux ] && opts="$opts -s" - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - case "${COMP_WORDS[i]}" in + local -A opts=( [-u]= [-l]= [-r]= [-e]= ) + [[ $OSTYPE == *linux* ]] && opts[-i]= + [[ -d /sys/fs/selinux || -d /selinux ]] && opts[-s]= + + local i + for (( i=0; i < ${#words[@]}-1; i++ )); do + [[ ${words[i]} ]] && unset opts[${words[i]}] + case "${words[i]}" in -l) - opts=${opts// -l -r -e/} - opts=${opts// -i/} - opts=${opts// -s/} + unset opts[-r] opts[-e] opts[-i] opts[-s] ;; -e) - opts=${opts// -l -r -e/} - opts=${opts// -i/} + unset opts[-l] opts[-r] opts[-i] ;; -r) - opts=${opts// -l -r -e/} + unset opts[-l] opts[-e] ;; -u) - opts=${opts// -u/} - opts=${opts// -i/} - ;; - -i|-s) - opts=${opts// ${COMP_WORDS[i]}/} + unset opts[-i] ;; esac done if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '$opts' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '${!opts[@]}' -- "$cur" ) ) return 0 fi # do filenames only if we did not have -l, -r, or -e - [[ "${COMP_LINE}" == *\ -@(l|r|e)* ]] || _filedir + [[ "${words[@]}" == *\ -@(l|r|e)* ]] || _filedir } && complete -F _crontab crontab -# 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/completions/cryptsetup b/completions/cryptsetup index 5e88de34..2bbdc952 100644 --- a/completions/cryptsetup +++ b/completions/cryptsetup @@ -1,4 +1,4 @@ -# bash completion for cryptsetup +# bash completion for cryptsetup -*- shell-script -*- _cryptsetup_name() { @@ -12,28 +12,26 @@ _cryptsetup_device() _filedir } -have cryptsetup && _cryptsetup() { - local cur prev arg - COMPREPLY=() - cur=`_get_cword` - prev=`_get_pword` + local cur prev words cword split + _init_completion -s || return case $prev in --key-file|--master-key-file|--header-backup-file|-d) _filedir - return 0; + return 0 ;; esac + $split && return + + local arg _get_first_arg if [ -z $arg ]; then if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--hash --cipher --verify-passphrase \ - --key-file --master-key-file --key-slot --key-size --size \ - --offset --skip --readonly --iter-time --batch-mode --timeout \ - --tries --align-payload --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else COMPREPLY=( $( compgen -W 'create remove status resize luksFormat \ luksOpen luksClose luksSuspend luksResume luksAddKey \ @@ -41,6 +39,7 @@ _cryptsetup() luksDump luksHeaderBackup luksHeaderRestore' -- "$cur" ) ) fi else + local args _count_args case $arg in create) @@ -104,10 +103,4 @@ _cryptsetup() } && complete -F _cryptsetup cryptsetup -# 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/completions/cups b/completions/cups deleted file mode 100644 index 2848c953..00000000 --- a/completions/cups +++ /dev/null @@ -1,21 +0,0 @@ -# bash completion for cups - -have cancel && -_cancel() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - COMPREPLY=( $( compgen -W "$( lpstat | cut -d' ' -f1 )" -- "$cur" ) ) -} && -complete -F _cancel cancel - -# 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/completions/curl b/completions/curl new file mode 100644 index 00000000..f0fc6acf --- /dev/null +++ b/completions/curl @@ -0,0 +1,85 @@ +# curl(1) completion -*- shell-script -*- + +_curl() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --ciphers|--connect-timeout|-C|--continue-at|--form|--form-string|\ + --ftp-account|--ftp-alternative-to-user|-P|--ftp-port|-H|--header|-h|\ + --help|--hostpubmd5|--keepalive-time|--krb|--limit-rate|--local-port|\ + --mail-from|--mail-rcpt|--max-filesize|--max-redirs|-m|--max-time|\ + --pass|--proto|--proto-redir|--proxy-user|--proxy1.0|-Q|--quote|-r|\ + --range|-X|--request|--retry|--retry-delay|--retry-max-time|\ + --socks5-gssapi-service|-t|--telnet-option|--tftp-blksize|-z|\ + --time-cond|--url|-u|--user|-A|--user-agent|-V|--version|-w|--write-out) + return + ;; + -K|--config|-b|--cookie|-c|--cookie-jar|-D|--dump-header|--egd-file|\ + --key|--libcurl|-o|--output|--random-file|-T|--upload-file) + _filedir + return + ;; + --cacert|-E|--cert) + _filedir '@(c?(e)rt|cer|pem|der)' + return + ;; + --capath) + _filedir -d + return + ;; + --cert-type|--key-type) + COMPREPLY=( $( compgen -W 'DER PEM ENG' -- "$cur" ) ) + return + ;; + --crlfile) + _filedir crl + return + ;; + -d|--data|--data-ascii|--data-binary|--data-urlencode) + if [[ $cur == \@* ]]; then + cur=${cur:1} + _filedir + COMPREPLY=( "${COMPREPLY[@]/#/@}" ) + fi + return + ;; + --engine) + COMPREPLY=( $( compgen -W 'list' -- "$cur" ) ) + return + ;; + --ftp-method) + COMPREPLY=( $( compgen -W 'multicwd nocwd singlecwd' -- "$cur" ) ) + return + ;; + --ftp-ssl-ccc-mode) + COMPREPLY=( $( compgen -W 'active passive' -- "$cur" ) ) + return + ;; + --interface) + _available_interfaces -a + return + ;; + -x|--proxy|--socks4|--socks4a|--socks5|--socks5-hostname) + _known_hosts_real + return + ;; + --pubkey) + _filedir pub + return + ;; + --stderr) + COMPREPLY=( $( compgen -W '-' -- "$cur" ) ) + _filedir + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + fi +} && +complete -F _curl curl + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/cvs b/completions/cvs index be3b1be7..bafe1901 100644 --- a/completions/cvs +++ b/completions/cvs @@ -1,20 +1,17 @@ -# cvs(1) completion +# cvs(1) completion -*- shell-script -*- -have cvs && { -set_prefix() +_cvs_entries() { - [ -z ${prefix:-} ] || prefix=${cur%/*}/ - [ -r ${prefix:-}CVS/Entries ] || prefix="" -} - -get_entries() -{ - local IFS=$'\n' - [ -r ${prefix:-}CVS/Entries ] && \ - entries=$(cut -d/ -f2 -s ${prefix:-}CVS/Entries) + local prefix=${cur%/*}/ IFS=$'\n' + [[ -e ${prefix:-}CVS/Entries ]] || prefix="" + entries=( $( cut -d/ -f2 -s ${prefix:-}CVS/Entries 2>/dev/null ) ) + if [[ $entries ]]; then + entries=( "${entries[@]/#/${prefix:-}}" ) + compopt -o filenames + fi } -get_modules() +_cvs_modules() { if [ -n "$prefix" ]; then COMPREPLY=( $( command ls -d ${cvsroot}/${prefix}/!(CVSROOT) ) ) @@ -28,14 +25,9 @@ _cvs_commands() cvs --help-commands 2>&1 | awk '/^( *|\t)/ { print $1 }' } -_cvs_options() -{ - cvs --help-options 2>&1 | awk '/^( *|\t)-/ { print $1 }' -} - _cvs_command_options() { - cvs --help $1 2>&1 | sed -ne 's/^[[:space:]]*\(-[^[:space:]=[]*\).*/\1/p' + COMPREPLY=( $( compgen -W '$( _parse_help "$1" "--help $2" )' -- "$cur" ) ) } _cvs_kflags() @@ -48,25 +40,25 @@ _cvs_roots() local -a cvsroots cvsroots=( $CVSROOT ) [ -r ~/.cvspass ] && \ - cvsroots=( "${cvsroots[@]}" $( awk '{ print $2 }' ~/.cvspass ) ) - [ -r CVS/Root ] && cvsroots=( "${cvsroots[@]}" $(cat CVS/Root) ) + cvsroots+=( $( awk '{ print $2 }' ~/.cvspass ) ) + [ -r CVS/Root ] && mapfile -tO ${#cvsroots[@]} cvsroots < CVS/Root COMPREPLY=( $( compgen -W '${cvsroots[@]}' -- "$cur" ) ) __ltrim_colon_completions "$cur" } _cvs() { - local cur prev count mode i cvsroot cvsroots pwd - local -a flags miss files entries changed newremoved + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev + local count mode i cvsroot cvsroots pwd + local -a flags miss files entries changed newremoved count=0 - for i in "${COMP_WORDS[@]}"; do - [ $count -eq $COMP_CWORD ] && break + for i in "${words[@]}"; do + [ $count -eq $cword ] && break # Last parameter was the CVSROOT, now go back to mode selection - if [[ "${COMP_WORDS[((count))]}" == "$cvsroot" && "$mode" == cvsroot ]]; then + if [[ "${words[((count))]}" == "$cvsroot" && "$mode" == cvsroot ]]; then mode="" fi if [ -z "$mode" ]; then @@ -77,65 +69,71 @@ _cvs() ;; -d) mode=cvsroot - cvsroot=${COMP_WORDS[((count+1))]} + cvsroot=${words[((count+1))]} ;; - ad|add|new) + add|ad|new) mode=add ;; - adm|admin|rcs) + admin|adm|rcs) mode=admin ;; - ann|annotate) + annotate|ann|blame|rannotate|rann|ra) mode=annotate ;; checkout|co|get) mode=checkout ;; - com|commit|ci) + commit|ci|com) mode=commit ;; - di|dif|diff) + diff|di|dif) mode=diff ;; - ex|exp|export) + export|ex|exp) mode=export ;; - edit|unedit) + edit|unedit|editors|logout|pserver|server|watch|watchers) mode=$i ;; - hi|his|history) + history|hi|his) mode=history ;; - im|imp|import) + import|im|imp) mode=import ;; - re|rel|release) - mode=release - ;; - log|rlog) + log|lo|rlog|rl) mode=log ;; - rdiff|patch) + login|logon|lgn) + mode=login + ;; + rdiff|patch|pa) mode=rdiff ;; + release|re|rel) + mode=release + ;; remove|rm|delete) mode=remove ;; - rtag|rfreeze) + rtag|rt|rfreeze) mode=rtag ;; - st|stat|status) + status|st|stat) mode=status ;; - tag|freeze) + tag|ta|freeze) mode=tag ;; - up|upd|update) + update|up|upd) mode=update ;; + version|ve|ver) + mode=version + ;; esac elif [[ "$i" = -* ]]; then - flags=( "${flags[@]}" $i ) + flags+=( $i ) fi count=$((++count)) done @@ -153,20 +151,26 @@ _cvs() esac if [[ "$cur" != -* ]]; then - set_prefix - if [[ $COMP_CWORD -gt 1 && -r ${prefix:-}CVS/Entries ]]; then - get_entries - [ -z "$cur" ] && \ - files=$( command ls -Ad !(CVS) ) || \ - files=$( command ls -d ${cur}* 2>/dev/null ) - for i in "${entries[@]}"; do - files=( ${files[@]/#$i//} ) - done - COMPREPLY=( $( compgen -X '*~' -W '${files[@]}' -- $cur ) ) - fi - else - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ + _cvs_entries + [ -z "$cur" ] && files=( !(CVS) ) || \ + files=( $( command ls -d ${cur}* 2>/dev/null ) ) + local f + for i in ${!files[@]}; do + if [[ ${files[i]} == ?(*/)CVS ]]; then + unset files[i] + else + for f in "${entries[@]}"; do + if [[ ${files[i]} == $f && ! -d $f ]]; then + unset files[i] + break + fi + done + fi + done + COMPREPLY=( $( compgen -X "$_backup_glob" -W '${files[@]}' \ -- "$cur" ) ) + else + _cvs_command_options "$1" $mode fi ;; admin) @@ -185,18 +189,19 @@ _cvs() esac if [[ "$cur" = -* ]]; then - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) + _cvs_command_options "$1" $mode + else + _cvs_entries + COMPREPLY=( $( compgen -W '${entries[@]}' -- "$cur" ) ) fi ;; annotate) [[ "$prev" == -@(r|D) ]] && return 0 if [[ "$cur" = -* ]]; then - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) + _cvs_command_options "$1" $mode else - get_entries + _cvs_entries COMPREPLY=( $( compgen -W '${entries[@]}' -- "$cur" ) ) fi ;; @@ -221,8 +226,7 @@ _cvs() awk '{print $1}' ) ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) else - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) + _cvs_command_options "$1" $mode fi ;; commit) @@ -236,36 +240,48 @@ _cvs() ;; esac - set_prefix - - if [[ "$cur" != -* && -r ${prefix:-}CVS/Entries ]]; then + if [[ "$cur" != -* ]]; then # if $COMP_CVS_REMOTE is not null, 'cvs commit' will # complete on remotely checked-out files (requires # passwordless access to the remote repository if [ -n "${COMP_CVS_REMOTE:-}" ]; then - # this is the least computationally intensive - # way found so far, but other changes - # (something other than changed/removed/new) - # may be missing - changed=( $( cvs -q diff --brief 2>&1 | \ - sed -ne 's/^Files [^ ]* and \([^ ]*\) differ$/\1/p' ) ) - newremoved=( $( cvs -q diff --brief 2>&1 | \ - sed -ne 's/^cvs diff: \([^ ]*\) .*, no comparison available$/\1/p' ) ) - COMPREPLY=( $( compgen -W '${changed[@]:-} \ - ${newremoved[@]:-}' -- "$cur" ) ) + # this is the least computationally intensive way found so + # far, but other changes (something other than + # changed/removed/new) may be missing + changed=( $( cvs -q diff --brief 2>&1 | \ + sed -ne 's/^Files [^ ]* and \([^ ]*\) differ$/\1/p' ) ) + newremoved=( $( cvs -q diff --brief 2>&1 | \ + sed -ne 's/^cvs diff: \([^ ]*\) .*, no comparison available$/\1/p' ) ) + COMPREPLY=( $( compgen -W '${changed[@]:-} \ + ${newremoved[@]:-}' -- "$cur" ) ) else - COMPREPLY=( $(compgen -o default -- "$cur") ) + _cvs_entries + COMPREPLY=( $( compgen -W '${entries[@]}' -- "$cur" ) ) fi else - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) + _cvs_command_options "$1" $mode fi ;; cvsroot) - # TODO: works poorly because of the colons and -o default, - # could we drop -o default? works ok without it in cvsps _cvs_roots ;; + diff) + if [[ "$cur" == -* ]]; then + _cvs_command_options "$1" $mode + [[ $COMPREPLY == *= ]] && compopt -o nospace + else + _cvs_entries + COMPREPLY=( $( compgen -W '${entries[@]:-}' -- "$cur" ) ) + fi + ;; + editors|watchers) + if [[ "$cur" = -* ]]; then + _cvs_command_options "$1" $mode + else + _cvs_entries + COMPREPLY=( $( compgen -W '${entries[@]}' -- "$cur" ) ) + fi + ;; export) case $prev in -r|-D) @@ -286,32 +302,7 @@ _cvs() COMPREPLY=( $( cvs -d "$cvsroot" co -c | awk '{print $1}' ) ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) else - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) - fi - ;; - diff) - if [[ "$cur" == -* ]]; then - _longopt diff - else - get_entries - COMPREPLY=( $( compgen -W '${entries[@]:-}' -- "$cur" ) ) - fi - ;; - remove) - if [[ "$cur" != -* ]]; then - set_prefix - if [[ $COMP_CWORD -gt 1 && -r ${prefix:-}CVS/Entries ]]; then - get_entries - # find out what files are missing - for i in "${entries[@]}"; do - [ ! -r "$i" ] && miss=( "${miss[@]}" $i ) - done - COMPREPLY=( $(compgen -W '${miss[@]:-}' -- "$cur") ) - fi - else - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) + _cvs_command_options "$1" $mode fi ;; import) @@ -328,9 +319,9 @@ _cvs() if [[ "$cur" != -* ]]; then # starts with same algorithm as checkout [ -z "$cvsroot" ] && cvsroot=$CVSROOT - prefix=${cur%/*} + local prefix=${cur%/*} if [ -r ${cvsroot}/${prefix} ]; then - get_modules + _cvs_modules COMPREPLY=( ${COMPREPLY[@]#$cvsroot} ) COMPREPLY=( ${COMPREPLY[@]#\/} ) fi @@ -338,8 +329,19 @@ _cvs() pwd=${pwd##*/} COMPREPLY=( $( compgen -W '${COMPREPLY[@]} $pwd' -- $cur ) ) else - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) + _cvs_command_options "$1" $mode + fi + ;; + remove) + if [[ "$cur" != -* ]]; then + _cvs_entries + # find out what files are missing + for i in "${entries[@]}"; do + [ ! -r "$i" ] && miss+=( $i ) + done + COMPREPLY=( $( compgen -W '${miss[@]:-}' -- "$cur" ) ) + else + _cvs_command_options "$1" $mode fi ;; update) @@ -354,8 +356,10 @@ _cvs() esac if [[ "$cur" = -* ]]; then - COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \ - -- "$cur" ) ) + _cvs_command_options "$1" $mode + else + _cvs_entries + COMPREPLY=( $( compgen -W '${entries[@]}' -- "$cur" ) ) fi ;; "") @@ -368,25 +372,19 @@ _cvs() return 0 ;; -z) - COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{1..9}' -- "$cur" ) ) return 0 ;; esac - COMPREPLY=( $( compgen -W '$( _cvs_commands ) $( _cvs_options ) \ + COMPREPLY=( $( compgen -W '$( _cvs_commands ) \ + $( _parse_help "$1" --help-options ) \ --help --help-commands --help-options --version' -- "$cur" ) ) ;; esac return 0 -} -complete -F _cvs -o default cvs -} +} && +complete -F _cvs cvs -# 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/completions/cvsps b/completions/cvsps index 257437bc..8b986f57 100644 --- a/completions/cvsps +++ b/completions/cvsps @@ -1,11 +1,9 @@ -# bash completion for cvsps +# bash completion for cvsps -*- shell-script -*- -have cvsps && _cvsps() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref -n : cur prev + local cur prev words cword + _init_completion -n : || return case $prev in -h|-z|-f|-d|-l|--diff-opts|--debuglvl) @@ -40,30 +38,21 @@ _cvsps() return 0 ;; -Z) - COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{1..9}' -- "$cur" ) ) return 0 ;; --root) - type _cvs_roots &>/dev/null && _cvs_roots + _xfunc cvs _cvs_roots return 0 ;; esac if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '-h -x -u -z -g -s -a -f -d -b -l -r -p -v \ - -t --norc --summary-first --test-log --diff-opts --bkcvs --no-rlog \ - --cvs-direct --no-cvs-direct --debuglvl -Z --root -q -A' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) else - type _cvs_roots &>/dev/null && _cvs_roots + _xfunc cvs _cvs_roots fi } && complete -F _cvsps cvsps -# 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/completions/dd b/completions/dd index 7b9b3ac7..53132dcc 100644 --- a/completions/dd +++ b/completions/dd @@ -1,12 +1,9 @@ -# bash completion for dd +# bash completion for dd -*- shell-script -*- -have dd && _dd() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref -n = cur + local cur prev words cword + _init_completion -n = || return case $cur in if=*|of=*) @@ -24,16 +21,10 @@ _dd() _expand || return 0 - COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) \ + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) \ $( compgen -W 'bs cbs conv count ibs if obs of seek skip' \ -S '=' -- "$cur" ) ) } && complete -F _dd -o nospace dd -# 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/completions/dhclient b/completions/dhclient index 3d7e1e1a..10bbbe66 100644 --- a/completions/dhclient +++ b/completions/dhclient @@ -1,11 +1,9 @@ -# bash completion for dhclient +# bash completion for dhclient -*- shell-script -*- -have dhclient && _dhclient() +_dhclient() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -cf|-lf|-pf|-sf) @@ -27,10 +25,4 @@ have dhclient && _dhclient() } && complete -F _dhclient dhclient -# 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/completions/dict b/completions/dict index 4cfdf98f..a31816d3 100644 --- a/completions/dict +++ b/completions/dict @@ -1,6 +1,5 @@ -# dict(1) completion +# dict(1) completion -*- shell-script -*- -{ have dict || have rdict; } && { _dictdata() { dict $host $port $1 2>/dev/null | sed -ne \ @@ -9,26 +8,25 @@ _dictdata() _dict() { - local cur prev host port db dictfile + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - dictfile=/usr/share/dict/words + local host port db i - for (( i=1; i < COMP_CWORD; i++ )); do - case ${COMP_WORDS[i]} in + for (( i=1; i < cword; i++ )); do + case ${words[i]} in -h|--host) - host=${COMP_WORDS[i+1]} + host=${words[i+1]} [ -n "$host" ] && host="-h $host" i=$((++i)) ;; -p|--port) - port=${COMP_WORDS[i+1]} + port=${words[i+1]} [ -n "$port" ] && port="-p $port" i=$((++i)) ;; -d|--database) - db=${COMP_WORDS[i+1]} + db=${words[i+1]} [ -n "$db" ] && host="-d $db" i=$((++i)) ;; @@ -38,14 +36,7 @@ _dict() done if [[ "$cur" = -* ]]; then - COMPREPLY=( $( compgen -W '--host --port --database \ - --match --strategy --config \ - --nocorrect --dbs --strats \ - --serverhelp --info --serverinfo \ - --noauth --user --key --version \ - --license --help --verbose --raw \ - --pager --debug --html --pipesize --client' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) return 0 fi @@ -62,16 +53,10 @@ _dict() ;; esac + local dictfile=/usr/share/dict/words [ -r $dictfile ] && \ COMPREPLY=( $( compgen -W '$( cat $dictfile )' -- "$cur" ) ) -} +} && complete -F _dict -o default dict rdict -} -# 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/completions/dmesg b/completions/dmesg new file mode 100644 index 00000000..5fb28e45 --- /dev/null +++ b/completions/dmesg @@ -0,0 +1,27 @@ +# dmesg(1) completion -*- shell-script -*- + +_dmesg() +{ + [[ $OSTYPE == *solaris* ]] && return # no args there + + local cur prev words cword + _init_completion || return + + case $prev in + -s|-M|-N) + return + ;; + -n) + COMPREPLY=( $( compgen -W '{1..8}' -- "$cur" ) ) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return + fi +} && +complete -F _dmesg dmesg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/dot b/completions/dot new file mode 100644 index 00000000..ef946e4b --- /dev/null +++ b/completions/dot @@ -0,0 +1,45 @@ +# dot(1) completion -*- shell-script -*- + +_dot() +{ + local cur prev words cword + _init_completion -n := || return + + [[ $prev == -@(V|\?) ]] && return + + case $cur in + -G*|-N*|-E*|-l?*|-q?*|-s?*|-Ln*|-LU*|-LC*|-LT*) + return + ;; + -T*) + local langs=( $( "$1" -TNON_EXISTENT 2>&1 | \ + sed -ne 's/.*one of://p' ) ) + COMPREPLY=( $( compgen -P -T -W '${langs[@]}' -- "${cur#-T}" ) ) + return + ;; + -K*) + local layouts=( $( "$1" -KNON_EXISTENT 2>&1 | \ + sed -ne 's/.*one of://p' ) ) + COMPREPLY=( $( compgen -P -K -W '${layouts[@]}' -- "${cur#-K}" ) ) + return + ;; + -o*) + cur=${cur#-o} + _filedir + COMPREPLY=( $( compgen -P -o -W '${COMPREPLY[@]}' -- "$cur" ) ) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '-V -v -G -N -E -T -K -l -o -O -P -q -s -y -n + -n1 -n2 -x -Lg -LO -Ln -LU -LC -LT -m -c -?' -- "$cur" ) ) + [[ $COMPREPLY == -@(G|N|E|T|K|o|L[nUCT]) ]] && compopt -o nospace + return + fi + + _filedir dot +} && +complete -F _dot dot + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/dpkg b/completions/dpkg index 0556f3d1..247171c5 100644 --- a/completions/dpkg +++ b/completions/dpkg @@ -1,6 +1,6 @@ -# This function is required by _dpkg() and _dpkg-reconfigure() -have dpkg && { -have grep-status && { +# This function is required by _dpkg and _dpkg-reconfigure -*- shell-script -*- + +_have grep-status && { _comp_dpkg_installed_packages() { grep-status -P -e "^$1" -a -FStatus 'install ok installed' -n -s Package @@ -20,21 +20,18 @@ _comp_dpkg_installed_packages() # _dpkg() { - local cur prev i - - COMPREPLY=() - _get_comp_words_by_ref cur prev - i=$COMP_CWORD + local cur prev words cword split + _init_completion -s || return _expand || return 0 - _split_longopt + local i=$cword # find the last option flag if [[ $cur != -* ]]; then - while [[ $prev != -* && $i != 1 ]]; do + while [[ $prev != -* && $i -ne 1 ]]; do i=$((i-1)) - prev=${COMP_WORDS[i-1]} + prev=${words[i-1]} done fi @@ -61,49 +58,23 @@ _dpkg() COMPREPLY=( $( _comp_dpkg_installed_packages "$cur" ) ) return 0 ;; - *) - COMPREPLY=( $( compgen -W '-i --install --unpack -A --record-avail \ - --configure -r --remove -P --purge --get-selections \ - --set-selections --update-avail --merge-avail \ - --clear-avail --command-fd --forget-old-unavail -s \ - --status -p --print-avail -L --listfiles -l --list \ - -S --search -C --audit --print-architecture \ - --print-gnu-build-architecture \ - --print-installation-architecture \ - --compare-versions --help --version --force-help \ - --force-all --force-auto-select --force-downgrade \ - --force-configure-any --force-hold --force-bad-path \ - --force-not-root --force-overwrite \ - --force-overwrite-diverted --force-bad-verify \ - --force-depends-version --force-depends \ - --force-confnew --force-confold --force-confdef \ - --force-confmiss --force-conflicts --force-architecture\ - --force-overwrite-dir --force-remove-reinstreq \ - --force-remove-essential -Dh \ - --debug=help --licence --admindir --root --instdir \ - -O --selected-only -E --skip-same-version \ - -G --refuse-downgrade -B --auto-deconfigure \ - --no-debsig --no-act -D --debug --status-fd \ - -b --build -I --info -f --field -c --contents \ - -x --extract -X --vextract --fsys-tarfile -e --control \ - --ignore-depends --abort-after' -- "$cur" ) ) - ;; esac + $split && return -} -complete -F _dpkg dpkg dpkg-deb -} + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace +} && +complete -F _dpkg dpkg dpkg-deb dpkg-query # Debian GNU dpkg-reconfigure(8) completion # -have dpkg-reconfigure && _dpkg_reconfigure() { - local cur prev opt + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev + local opt case $prev in -f|--frontend) @@ -128,117 +99,4 @@ _dpkg_reconfigure() } && complete -F _dpkg_reconfigure -o default dpkg-reconfigure -# Debian dpkg-source completion -# -have dpkg-source && -_dpkg_source() -{ - local cur prev options work i action packopts unpackopts fields - - packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sr -ss -sA -sK -sP \ - -sU -sR" - unpackopts="-sp -sn -su" - options="-x -b $packopts $unpackopts" - fields="Format Source Version Binary Maintainer Uploader Architecture \ - Standards-Version Build-Depends Files" - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - action="options" - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[$i]} == "-x" ]]; then - action=unpack - elif [[ ${COMP_WORDS[$i]} == "-b" ]]; then - action=pack - elif [[ ${COMP_WORDS[$i]} == "-h" ]]; then - action=help - fi - done - - case $action in - unpack) - case $prev in - -x) - _filedir -d - _filedir 'dsc' - return 0 - ;; - *) - COMPREPLY=( $( compgen -W "$unpackopts" -- "$cur" ) ) - _filedir -d - _filedir - return 0 - ;; - esac - return 0 - ;; - pack) - case $prev in - -b) - _filedir -d - return 0 - ;; - -c|-l|-T|-i|-I) - # -c: get controlfile - # -l: get per-version info from this file - # -T: read variables here, not debian/substvars - # -i: <regexp> filter out files to ignore diffs of. - # -I: filter out files when building tarballs. - # return directory names and file names - _filedir -d - _filedir - return 0 - ;; - -F) - # -F: force change log format - COMPREPLY=( $( command ls /usr/lib/dpkg/parsechangelog ) ) - return 0 - ;; - -V|-D) - # -V: set a substitution variable - # we don't know anything about possible variables or values - # so we don't try to suggest any completion. - COMPREPLY=() - return 0 - ;; - -D) - # -D: override or add a .dsc field and value - # if $cur doesn't contain a = yet, suggest variable names - if [[ "$cur" == *=* ]]; then - # $cur contains a "=" - COMPREPLY=() - return 0 - else - COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) ) - return 0 - fi - ;; - -U) - # -U: remove a field - # Suggest possible fieldnames - COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) ) - return 0 - ;; - *) - COMPREPLY=( $( compgen -W "$packopts $unpackopts" -- "$cur" ) ) - return 0 - ;; - esac - return 0 - ;; - *) - COMPREPLY=( $( compgen -W "$options" -- "$cur" ) ) - return 0 - ;; - esac -} && -complete -F _dpkg_source dpkg-source - -# 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/completions/dpkg-source b/completions/dpkg-source new file mode 100644 index 00000000..6cd9bde3 --- /dev/null +++ b/completions/dpkg-source @@ -0,0 +1,107 @@ +# Debian dpkg-source completion -*- shell-script -*- + +_dpkg_source() +{ + local cur prev words cword + _init_completion || return + + local options work i action packopts unpackopts fields + + packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sr -ss -sA -sK -sP \ + -sU -sR" + unpackopts="-sp -sn -su" + options="-x -b $packopts $unpackopts" + fields="Format Source Version Binary Maintainer Uploader Architecture \ + Standards-Version Build-Depends Files" + + action="options" + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[$i]} == "-x" ]]; then + action=unpack + elif [[ ${words[$i]} == "-b" ]]; then + action=pack + elif [[ ${words[$i]} == "-h" ]]; then + action=help + fi + done + + case $action in + unpack) + case $prev in + -x) + _filedir -d + _filedir 'dsc' + return 0 + ;; + *) + COMPREPLY=( $( compgen -W "$unpackopts" -- "$cur" ) ) + _filedir -d + _filedir + return 0 + ;; + esac + return 0 + ;; + pack) + case $prev in + -b) + _filedir -d + return 0 + ;; + -c|-l|-T|-i|-I) + # -c: get controlfile + # -l: get per-version info from this file + # -T: read variables here, not debian/substvars + # -i: <regexp> filter out files to ignore diffs of. + # -I: filter out files when building tarballs. + # return directory names and file names + _filedir -d + _filedir + return 0 + ;; + -F) + # -F: force change log format + COMPREPLY=( $( command ls /usr/lib/dpkg/parsechangelog ) ) + return 0 + ;; + -V|-D) + # -V: set a substitution variable + # we don't know anything about possible variables or values + # so we don't try to suggest any completion. + COMPREPLY=() + return 0 + ;; + -D) + # -D: override or add a .dsc field and value + # if $cur doesn't contain a = yet, suggest variable names + if [[ "$cur" == *=* ]]; then + # $cur contains a "=" + COMPREPLY=() + return 0 + else + COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) ) + return 0 + fi + ;; + -U) + # -U: remove a field + # Suggest possible fieldnames + COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) ) + return 0 + ;; + *) + COMPREPLY=( $( compgen -W "$packopts $unpackopts" -- "$cur" ) ) + return 0 + ;; + esac + return 0 + ;; + *) + COMPREPLY=( $( compgen -W "$options" -- "$cur" ) ) + return 0 + ;; + esac +} && +complete -F _dpkg_source dpkg-source + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/dselect b/completions/dselect index 3042a8d0..9da1e927 100644 --- a/completions/dselect +++ b/completions/dselect @@ -1,12 +1,9 @@ -# Debian Linux dselect(8) completion. +# Debian Linux dselect(8) completion -*- shell-script -*- -have dselect && _dselect() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --admindir) @@ -31,10 +28,4 @@ _dselect() } && complete -F _dselect dselect -# 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/completions/dsniff b/completions/dsniff index 1d3b303b..94b34ef6 100644 --- a/completions/dsniff +++ b/completions/dsniff @@ -1,66 +1,9 @@ -# dsniff util completion +# dsniff completion -*- shell-script -*- -have arpspoof && -_arpspoof() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _available_interfaces - return 0 - ;; - -t) - _known_hosts_real "$cur" - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-i -t' -- "$cur" ) ) - else - _known_hosts_real "$cur" - fi - -} && -complete -F _arpspoof arpspoof - -have dnsspoof && -_dnsspoof() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _interfaces - return 0 - ;; - -f) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-i -f' -- "$cur" ) ) - fi - -} && -complete -F _dnsspoof dnsspoof - -have dsniff && _dsniff() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -r|-w|-f) @@ -74,183 +17,10 @@ _dsniff() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-c -d -m -n -i -s -f -t -r -w' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" ) -r -w' -- "$cur" ) ) fi } && complete -F _dsniff dsniff -have filesnarf || have mailsnarf || have msgsnarf && -_snarf() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _interfaces - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-i -v' -- "$cur" ) ) - fi - -} && -complete -F _snarf filesnarf mailsnarf msgsnarf - -have macof && -_macof() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _interfaces - return 0 - ;; - esac - - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-i -s -d -e -x -y -n' -- "$cur" ) ) - fi - -} && -complete -F _macof macof - -have sshmitm && -_sshmitm() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-d -I -p' -- "$cur" ) ) - else - _known_hosts_real "$cur" - fi - -} && -complete -F _sshmitm sshmitm - -have sshow && -_sshow() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _interfaces - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-d -i' -- "$cur" ) ) - fi - -} && -complete -F _sshow sshow - -have tcpkill && -_tcpkill() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _interfaces - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-i -1 -2 -3 -4 -5 -6 -7 -8 -9' -- "$cur" ) ) - fi - -} && -complete -F _tcpkill tcpkill - -have tcpnice && -_tcpnice() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _interfaces - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-A -I -M -i' -- "$cur" ) ) - fi - -} && -complete -F _tcpnice tcpnice - -have urlsnarf && -_urlsnarf() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _interfaces - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-n -i -v' -- "$cur" ) ) - fi - -} && -complete -F _urlsnarf urlsnarf - -have webmitm && -_webmitm() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-d' -- "$cur" ) ) - else - _known_hosts_real "$cur" - fi - -} && -complete -F _webmitm webmitm - -# 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/completions/dumpdb b/completions/dumpdb new file mode 100644 index 00000000..461401c3 --- /dev/null +++ b/completions/dumpdb @@ -0,0 +1,18 @@ +# mailman dumpdb completion -*- shell-script -*- + +_dumpdb() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--marshal --pickle --noprint \ + --help' -- "$cur" ) ) + else + _filedir + fi + +} && +complete -F _dumpdb dumpdb + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/dumpe2fs b/completions/dumpe2fs new file mode 100644 index 00000000..127b46fc --- /dev/null +++ b/completions/dumpe2fs @@ -0,0 +1,28 @@ +# dumpe2fs(8) completion -*- shell-script -*- + +_dumpe2fs() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -o|-V) + return 0 + ;; + -i) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + cur=${cur:=/dev/} + _filedir +} && +complete -F _dumpe2fs dumpe2fs + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/e2freefrag b/completions/e2freefrag new file mode 100644 index 00000000..6a971156 --- /dev/null +++ b/completions/e2freefrag @@ -0,0 +1,24 @@ +# e2freefrag(8) completion -*- shell-script -*- + +_e2freefrag() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -c|-h) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" -h )' -- "$cur" ) ) + return 0 + fi + + cur=${cur:=/dev/} + _filedir +} && +complete -F _e2freefrag e2freefrag + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/e2fsprogs b/completions/e2fsprogs deleted file mode 100644 index 50ce7885..00000000 --- a/completions/e2fsprogs +++ /dev/null @@ -1,180 +0,0 @@ -# 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 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 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 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 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 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 ^dir_nlink ^extent ^extra_isize ^filetype - ^flex_bg ^has_journal ^huge_file ^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 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 diff --git a/completions/e2label b/completions/e2label new file mode 100644 index 00000000..86008d9f --- /dev/null +++ b/completions/e2label @@ -0,0 +1,15 @@ +# e2label(8) completion -*- shell-script -*- + +_e2label() +{ + local cur prev words cword + _init_completion || return + + if [ $cword -eq 1 ]; then + cur=${cur:=/dev/} + _filedir + fi +} && +complete -F _e2label e2label + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/ether-wake b/completions/ether-wake new file mode 100644 index 00000000..2142d74e --- /dev/null +++ b/completions/ether-wake @@ -0,0 +1,27 @@ +# ether-wake(8) completion -*- shell-script -*- + +_ether_wake() +{ + local cur prev words cword + _init_completion -n : || return + + case $prev in + -i) + _available_interfaces + return 0 + ;; + -p) + return 0 + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -u ) -V' -- "$cur" ) ) + return 0 + fi + + _mac_addresses +} && +complete -F _ether_wake ether-wake + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/evince b/completions/evince new file mode 100644 index 00000000..9c7d0c3a --- /dev/null +++ b/completions/evince @@ -0,0 +1,33 @@ +# evince(1) completion -*- shell-script -*- + +_evince() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --help*|-h|--sm-client-id|--class|--name|--screen|--gdk-debug|\ + --gdk-no-debug|--gtk-module|--gtk-debug|--gtk-no-debug|\ + -p|--page-label|-i|--page-index|-l|--find|--display) + return + ;; + --sm-client-state-file) + _filedir + return + ;; + esac + + $split && return 0 + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help-all )' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + _filedir '@(@(?(e)ps|?(E)PS|[pf]df|[PF]DF|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)' +} && +complete -F _evince evince + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/explodepkg b/completions/explodepkg new file mode 100644 index 00000000..b6914750 --- /dev/null +++ b/completions/explodepkg @@ -0,0 +1,5 @@ +# Slackware Linux explodepkg completion -*- shell-script -*- + +complete -o plusdirs -f -X '!*.t[bglx]z' explodepkg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/export b/completions/export new file mode 100644 index 00000000..557c52cb --- /dev/null +++ b/completions/export @@ -0,0 +1,25 @@ +# bash export completion -*- shell-script -*- + +_export() +{ + local cur prev words cword + _init_completion || return + + case ${words[@]} in + *=\$*) + COMPREPLY=( $( compgen -v -P '$' -- "${cur#*=\$}" ) ) + ;; + *[^=]) + COMPREPLY=( $( compgen -v -S '=' -- "$cur" ) ) + ;; + *=) + COMPREPLY=( "$( eval echo -n \"$`echo ${cur%=}`\" | + ( echo -n \' + sed -e 's/'\''/'\''\\\'\'''\''/g' + echo -n \' ) )" ) + ;; + esac +} && +complete -F _export -o default -o nospace export + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/faillog b/completions/faillog new file mode 100644 index 00000000..77ca9c72 --- /dev/null +++ b/completions/faillog @@ -0,0 +1,28 @@ +# faillog(8) completion -*- shell-script -*- + +_faillog() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -h|--help|-l|--lock-time|-m|--maximum|-t|--time) + return 0 + ;; + -u|--user) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi +} && +complete -F _faillog faillog + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/fbgs b/completions/fbgs new file mode 100644 index 00000000..672de7cd --- /dev/null +++ b/completions/fbgs @@ -0,0 +1,39 @@ +# bash completion for fbgs(1) -*- shell-script -*- + +_fbgs() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + -f) + local IFS=$'\n' + COMPREPLY=( $( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) ) + return + ;; + -m) + COMPREPLY=( $( compgen -W '$( sed \ + -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \ + /etc/fb.modes 2> /dev/null )' -- "$cur" ) ) + return + ;; + -d) + COMPREPLY=( $( compgen -f -d -- "${cur:-/dev/}" ) ) + return + ;; + -t|-g|-p) + # argument required but no completions available + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $(compgen -W '-l -xl -xxl -a --fitwidth -d -m -t -g -f -p \ + -h -c' -- "$cur") ) + [[ $COMPREPLY ]] && return + fi + + _filedir '?(e)ps|pdf' +} && complete -F _fbgs fbgs + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/fbi b/completions/fbi new file mode 100644 index 00000000..f8f7a825 --- /dev/null +++ b/completions/fbi @@ -0,0 +1,54 @@ +# bash completion for fbi(1) -*- shell-script -*- + +_fbi() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + -l|--list) + _filedir + return + ;; + -r|--resolution) + COMPREPLY+=( $(compgen -W '{1..5}') ) + return + ;; + -f|--font) + local IFS=$'\n' + COMPREPLY=( $( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) ) + return + ;; + -m|--mode) + COMPREPLY=( $( compgen -W '$( sed \ + -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \ + /etc/fb.modes 2> /dev/null )' -- "$cur" ) ) + return + ;; + -d|--device) + COMPREPLY=( $( compgen -f -d -- "${cur:-/dev/}" ) ) + return + ;; + --cachemem|--blend|-T|--vt|-s|--scroll|-t|--timeout|-g|--gamma) + # argument required but no completions available + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $(compgen -W '--help --version --store --list --text \ + --autozoom --autoup --noautoup --autodown --noautodown --fitwidth \ + --nofitwidth --verbose --noverbose --random --norandom --comments \ + --nocomments --edit --noedit --backup --nobackup --preserve \ + --nopreserve --readahead --noreadahead --cachemem --blend --vt \ + --scroll --timeout --once --noonce --resolution --gamma --font \ + --device --mode' -- "$cur") ) + [[ $COMPREPLY ]] && return + fi + + # FIXME: It is hard to determine correct supported extensions. + # fbi can handle any format that imagemagick can plus some others + _filedir 'bmp|gif|jp?(e)g|pcd|png|p[pgb]m|tif?(f)|webp|xpm|xwd|?(e)ps|pdf|dvi|txt|svg?(z)' +} && complete -F _fbi fbi + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/feh b/completions/feh new file mode 100644 index 00000000..e39b5c31 --- /dev/null +++ b/completions/feh @@ -0,0 +1,119 @@ +# bash completion for feh(1) -*- shell-script -*- + +_feh() +{ + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + -B|--image-bg) + COMPREPLY=( $( compgen -W 'default white black' -- "$cur" ) ) + return + ;; + --index-dim|--index-name|--index-size) + COMPREPLY=( $( compgen -W '0 1' -- "$cur" ) ) + return + ;; + -f|--filelist|-o|--output|-O|--output-only|-\||--start-at) + _filedir + return + ;; + -K|--caption-path|-C|--fontpath|-j|--output-dir) + _filedir -d + return + ;; + -e|--font|-M|--menu-font|-@|--title-font) + # expect string like "dejavu.ttf/12" + if [[ "$cur" == */* ]]; then # expect integer value + COMPREPLY=( $(compgen -P "$cur" -W '{0..9}') ) + compopt -o nospace + return + fi + local font_path + # font_path="$(imlib2-config --prefix 2> /dev/null)/share/imlib2/data/fonts" + # COMPREPLY=( $( cd "$font_path" 2> /dev/null; compgen -f \ + # -X "!*.@([tT][tT][fF])" -S / -- "$cur" ) ) + for (( i=${#words[@]}-1; i>0; i-- )); do + if [[ ${words[i]} == -@(C|-fontpath) ]]; then + font_path="${words[i+1]}" + COMPREPLY+=( $( cd "$font_path" 2> /dev/null; compgen -f \ + -X "!*.@([tT][tT][fF])" -S / -- "$cur" ) ) + fi + done + compopt -o nospace + return + ;; + -T|--theme) + local conf_path=~/.config/feh/themes + local theme_name theme_opts + [ -r "$conf_path" ] || return + while read theme_name theme_opts; do + if [[ "$theme_name" == '#'* || "$theme_name" == "" ]]; then + continue + fi + COMPREPLY+=( $( compgen -W "$theme_name" -- "$cur" ) ) + done < "$conf_path" + return + ;; + -S|--sort) + COMPREPLY=( $( compgen -W 'name filename width height pixels size + format' -- "$cur" ) ) + return + ;; + -R|--reload|-H|--limit-height|-W|--limit-width|-E|--thumb-height|\ + -y|--thumb-width|-J|--thumb-redraw) + # expect integer value + COMPREPLY+=( $(compgen -W '{0..9}') ) + compopt -o nospace + return + ;; + --zoom) + # expect integer value or "max", "fill" + COMPREPLY=( $(compgen -W 'max fill' -- "$cur") ) + if [[ ! $cur || ! $COMPREPLY ]]; then + COMPREPLY+=( $(compgen -W '{0..9}') ) + compopt -o nospace + fi + return + ;; + -0|--reload-button|-1|--pan-button|-2|--zoom-button|-3|--menu-button|\ + -4|--prev-button|-5|--next-button|-8|--rotate-button|-9|--blur-button) + COMPREPLY=( $( compgen -W '{0..9}' -- "$cur" ) ) + return + ;; + -a|--alpha) + COMPREPLY=( $( compgen -W '{0..255}' -- "$cur" ) ) + return + ;; + -b|--bg) + _filedir + COMPREPLY+=( $( compgen -W 'trans' -- "$cur" ) ) + return + ;; + -g|--geometry) + # expect string like 640x480 + if [[ $cur && "$cur" != *x* ]]; then + COMPREPLY=( x ) + fi + COMPREPLY+=( $(compgen -W "{0..9}") ) + compopt -o nospace + return + ;; + -L|--customlist|--info|-D|--slideshow-delay|-~|--thumb-title|-^|--title) + # argument required but no completions available + return + ;; + esac + + $split && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + [[ $COMPREPLY ]] && return + fi + + _filedir 'xpm|tif?(f)|png|p[npgba]m|iff|?(i)lbm|jp?(e)g|jfi?(f)|gif|bmp|arg?(b)|tga|xcf|ani|ico' +} && complete -F _feh feh + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/file b/completions/file new file mode 100644 index 00000000..172fd5e0 --- /dev/null +++ b/completions/file @@ -0,0 +1,32 @@ +# file(1) completion -*- shell-script -*- + +_file() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --help|-v|--version|-F|--separator) + return + ;; + -m|--magic-file|-f|--files-from) + _filedir + return + ;; + -e|--exclude) + COMPREPLY=( $( compgen -W 'apptype ascii cdf compress elf encoding + soft tar text tokens troff' -- "$cur" ) ) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return + fi + + _filedir +} && +complete -F _file file + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/filefrag b/completions/filefrag new file mode 100644 index 00000000..ee9d0d81 --- /dev/null +++ b/completions/filefrag @@ -0,0 +1,17 @@ +# filefrag(8) completion -*- shell-script -*- + +_filefrag() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + _filedir +} && +complete -F _filefrag filefrag + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/filesnarf b/completions/filesnarf new file mode 100644 index 00000000..07c4c741 --- /dev/null +++ b/completions/filesnarf @@ -0,0 +1,22 @@ +# filesnarf etc completion -*- shell-script -*- + +_snarf() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _interfaces + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi + +} && +complete -F _snarf filesnarf mailsnarf msgsnarf + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/findutils b/completions/find index b8aaa57a..2afb6fc9 100644 --- a/completions/findutils +++ b/completions/find @@ -1,18 +1,15 @@ -# bash completion for GNU find. This makes heavy use of ksh style extended -# globs and contains Linux specific code for completing the parameter -# to the -fstype option. +# bash completion for GNU find -*- shell-script -*- +# This makes heavy use of ksh style extended globs and contains Linux specific +# code for completing the parameter to the -fstype option. -have find && _find() { - local cur prev i exprfound onlyonce - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -maxdepth|-mindepth) - COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{0..9}' -- "$cur" ) ) return 0 ;; -newer|-anewer|-cnewer|-fls|-fprint|-fprint0|-fprintf|-name|-iname|\ @@ -22,10 +19,8 @@ _find() ;; -fstype) _fstypes - if [[ "$( uname -s )" == *BSD ]] ; then - COMPREPLY=( "${COMPREPLY[@]}" \ - $( compgen -W 'local rdonly' -- "$cur" ) ) - fi + [[ $OSTYPE == *bsd* ]] && \ + COMPREPLY+=( $( compgen -W 'local rdonly' -- "$cur" ) ) return 0 ;; -gid) @@ -49,8 +44,8 @@ _find() return 0 ;; -exec|-execdir|-ok|-okdir) - COMP_WORDS=(COMP_WORDS[0] "$cur") - COMP_CWORD=1 + words=(words[0] "$cur") + cword=1 _command return 0 ;; @@ -68,13 +63,15 @@ _find() esac _expand || return 0 - # set exprfound to 1 if there is already an expression present - for i in ${COMP_WORDS[@]}; do - [[ "$i" = [-\(\),\!]* ]] && exprfound=1 && break + + local i exprfound=false + # set exprfound to true if there is already an expression present + for i in ${words[@]}; do + [[ "$i" = [-\(\),\!]* ]] && exprfound=true && break done # handle case where first parameter is not a dash option - if [[ "$exprfound" != 1 && "$cur" != [-\(\),\!]* ]]; then + if ! $exprfound && [[ "$cur" != [-\(\),\!]* ]]; then _filedir -d return 0 fi @@ -92,26 +89,23 @@ _find() -delete -exec -execdir -fls -fprint -fprint0 -fprintf -ls -ok -okdir \ -print -print0 -printf -prune -quit' -- "$cur" ) ) - # this removes any options from the list of completions that have - # already been specified somewhere on the command line, as long as - # these options can only be used once (in a word, "options", in - # opposition to "tests" and "actions", as in the find(1) manpage). - onlyonce=' -daystart -depth -follow -help -ignore_readdir_race -maxdepth \ - -mindepth -mount -noignore_readdir_race -noleaf -nowarn -regextype \ - -version -warn -xdev ' - COMPREPLY=( $( \ - (while read -d ' ' i; do - [[ -z "$i" || "${onlyonce/ ${i%% *} / }" == "$onlyonce" ]] && - continue - # flatten array with spaces on either side, - # otherwise we cannot grep on word boundaries of - # first and last word - COMPREPLY=" ${COMPREPLY[@]} " - # remove word from list of completions - COMPREPLY=( ${COMPREPLY/ ${i%% *} / } ) + if [[ ${#COMPREPLY[@]} -ne 0 ]]; then + # this removes any options from the list of completions that have + # already been specified somewhere on the command line, as long as + # these options can only be used once (in a word, "options", in + # opposition to "tests" and "actions", as in the find(1) manpage). + local -A onlyonce=( [-daystart]=1 [-depth]=1 [-follow]=1 [-help]=1 + [-ignore_readdir_race]=1 [-maxdepth]=1 [-mindepth]=1 [-mount]=1 + [-noignore_readdir_race]=1 [-noleaf]=1 [-nowarn]=1 [-regextype]=1 + [-version]=1 [-warn]=1 [-xdev]=1 ) + local j + for i in "${words[@]}"; do + [[ $i && ${onlyonce[$i]} ]] || continue + for j in ${!COMPREPLY[@]}; do + [[ ${COMPREPLY[j]} == $i ]] && unset COMPREPLY[j] done - printf '%s ' "${COMPREPLY[@]}") <<<"${COMP_WORDS[@]}" - ) ) + done + fi _filedir @@ -119,10 +113,4 @@ _find() } && complete -F _find find -# 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/completions/find_member b/completions/find_member new file mode 100644 index 00000000..d306f1be --- /dev/null +++ b/completions/find_member @@ -0,0 +1,25 @@ +# mailman find_member completion -*- shell-script -*- + +_find_member() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -l|-x|--listname|--exclude) + _xfunc list_lists _mailman_lists + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--listname --exclude --owners \ + --help' -- "$cur" ) ) + fi + +} && +complete -F _find_member find_member + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/freeciv b/completions/freeciv deleted file mode 100644 index 602ad76a..00000000 --- a/completions/freeciv +++ /dev/null @@ -1,65 +0,0 @@ -# freeciv completions - -have civserver && -_civserver() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -f|-g|-l|-r|--file|--log|--gamelog|--read) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-d -f -g -h -i -l -m -M -p -q -r -v\ - --debug --file --gamelog --help --info --log --meta \ - --Metaserver --port --quitidle --read --version' -- "$cur" ) ) - fi - -} && -complete -F _civserver civserver - -have civclient && -_civclient() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -l|-S|-t|--log|--Sound|--tiles) - _filedir - return 0 - ;; - -P|--Plugin) - COMPREPLY=( $( compgen -W 'none esd sdl' -- "$cur" ) ) - return 0 - ;; - -s|--server) - _known_hosts_real "$cur" - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -d -h -l -m -n -p -P -s -S -t -v\ - --autoconnect --debug --help --log --meta --name --port \ - --Plugin --server --Sound --tiles --version' -- "$cur" ) ) - fi - -} && -complete -F _civclient civclient - -# 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/completions/freeciv-gtk2 b/completions/freeciv-gtk2 new file mode 100644 index 00000000..c818433d --- /dev/null +++ b/completions/freeciv-gtk2 @@ -0,0 +1,30 @@ +# freeciv client completions -*- shell-script -*- + +_civclient() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -l|-S|-t|--log|--Sound|--tiles) + _filedir + return 0 + ;; + -P|--Plugin) + COMPREPLY=( $( compgen -W 'none esd sdl' -- "$cur" ) ) + return 0 + ;; + -s|--server) + _known_hosts_real "$cur" + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + fi + +} && +complete -F _civclient civclient freeciv-gtk2 freeciv-sdl freeciv-xaw + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/freeciv-server b/completions/freeciv-server new file mode 100644 index 00000000..7daa30ce --- /dev/null +++ b/completions/freeciv-server @@ -0,0 +1,22 @@ +# freeciv-server completion -*- shell-script -*- + +_civserver() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -f|-g|-l|-r|--file|--log|--gamelog|--read) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + fi + +} && +complete -F _civserver civserver freeciv-server + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/function b/completions/function new file mode 100644 index 00000000..6156e63d --- /dev/null +++ b/completions/function @@ -0,0 +1,22 @@ +# bash shell function completion -*- shell-script -*- + +_function() +{ + local cur prev words cword + _init_completion || return + + if [[ $1 == @(declare|typeset) ]]; then + if [ "$prev" = -f ]; then + COMPREPLY=( $( compgen -A function -- "$cur" ) ) + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a -f -F -i -r -x -p' -- "$cur" ) ) + fi + elif [ $cword -eq 1 ]; then + COMPREPLY=( $( compgen -A function -- "$cur" ) ) + else + COMPREPLY=( "() $( type -- ${words[1]} | sed -e 1,2d )" ) + fi +} && +complete -F _function function declare typeset + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/fuse b/completions/fusermount index 58d0c516..fa51b228 100644 --- a/completions/fuse +++ b/completions/fusermount @@ -1,11 +1,9 @@ -# bash completion for fuse +# fusermount completion -*- shell-script -*- -have fusermount && _fusermount() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h|-V|-o) @@ -20,17 +18,11 @@ _fusermount() esac if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '-h -V -o -u -q -z' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) else _filedir -d fi } && complete -F _fusermount fusermount -# 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/completions/gcc b/completions/gcc index d78e3e24..bafb81b7 100644 --- a/completions/gcc +++ b/completions/gcc @@ -1,4 +1,4 @@ -# gcc(1) completion +# gcc(1) completion -*- shell-script -*- # # The only unusual feature is that we don't parse "gcc --help -v" output # directly, because that would include the options of all the other backend @@ -8,16 +8,15 @@ # ask the driver ("g++") for the name of the compiler ("cc1"), and parse the # --help output of the compiler. -have gcc && _gcc() { - local cur cc backend - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return _expand || return 0 + local cc backend + case $1 in gcj) backend=jc1 @@ -34,7 +33,8 @@ _gcc() esac if [[ "$cur" == -* ]]; then - cc=$( $1 -print-prog-name=$backend ) + cc=$( $1 -print-prog-name=$backend 2>/dev/null ) + [[ $cc ]] || return # sink stderr: # for C/C++/ObjectiveC it's useless # for FORTRAN/Java it's an error @@ -47,13 +47,8 @@ _gcc() fi } && complete -F _gcc gcc g++ c++ g77 gcj gpc -[ $USERLAND = GNU -o $UNAME = Cygwin ] && \ -[ -n "${have:-}" ] && complete -F _gcc cc -# Local variables: -# mode: shell-script -# sh-basic-offset: 4 -# sh-indent-comment: t -# indent-tabs-mode: nil -# End: +[[ $OSTYPE == *cygwin* ]] || _userland GNU && _have gcc && \ + complete -F _gcc cc || : + # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/gcl b/completions/gcl index e0931536..2796ca07 100644 --- a/completions/gcl +++ b/completions/gcl @@ -1,13 +1,11 @@ +# -*- shell-script -*- # bash programmable completion for various Common Lisp implementations by # Nikodemus Siivola <nikodemus@random-state.net> -have gcl && _gcl() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return # completing an option (may or may not be separated by a space) if [[ "$cur" == -* ]]; then @@ -21,10 +19,4 @@ _gcl() } && complete -F _gcl -o default gcl -# 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/completions/gdb b/completions/gdb index f0bc42d3..c24407b5 100644 --- a/completions/gdb +++ b/completions/gdb @@ -1,16 +1,13 @@ -# bash completion for gdb +# bash completion for gdb -*- shell-script -*- -have gdb && _gdb() { - local cur prev + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then local IFS - _compopt_o_filenames + compopt -o filenames if [[ "$cur" == */* ]]; then # compgen -c works as expected if $cur contains any slashes. IFS=$'\n' @@ -27,18 +24,14 @@ _gdb() -mindepth 1 -maxdepth 1 -not -type d -executable \ -printf "%f\\n" 2>/dev/null)' -- "$cur" ) ) fi - elif [ $COMP_CWORD -eq 2 ]; then - prev=${prev##*/} - COMPREPLY=( $( compgen -fW "$( command ps axo comm,pid | \ - awk '{if ($1 ~ /^'"$prev"'/) print $2}' )" -- "$cur" ) ) + elif [ $cword -eq 2 ]; then + COMPREPLY=( $( compgen -W "$( command ps axo comm,pid | \ + awk '{if ($1 ~ /^'"${prev##*/}"'/) print $2}' )" -- "$cur" ) ) + compopt -o filenames + COMPREPLY+=( $( compgen -f -X '!?(*/)core?(.+([0-9]))' -o plusdirs \ + -- "$cur" ) ) fi } && -complete -F _gdb -o default gdb +complete -F _gdb gdb -# 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/completions/genaliases b/completions/genaliases new file mode 100644 index 00000000..32f5919a --- /dev/null +++ b/completions/genaliases @@ -0,0 +1,15 @@ +# mailman genaliases completion -*- shell-script -*- + +_genaliases() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--quiet --help' -- "$cur" ) ) + fi + +} && +complete -F _genaliases genaliases + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/gendiff b/completions/gendiff new file mode 100644 index 00000000..38c0828e --- /dev/null +++ b/completions/gendiff @@ -0,0 +1,12 @@ +# gendiff(1) completion -*- shell-script -*- + +_gendiff() +{ + local cur prev words cword + _init_completion -o @(diff|patch) || return + + [[ $cword -eq 1 ]] && _filedir -d +} && +complete -F _gendiff gendiff + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/genisoimage b/completions/genisoimage index 61b18114..3c966515 100644 --- a/completions/genisoimage +++ b/completions/genisoimage @@ -1,12 +1,9 @@ -# bash completion for mkisofs/genisoimage +# bash completion for mkisofs/genisoimage -*- shell-script -*- -(have mkisofs || have genisoimage) && _mkisofs() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -o|-abstract|-biblio|-check-session|-copyright|-log-file| \ @@ -68,10 +65,4 @@ _mkisofs() } && complete -F _mkisofs mkisofs genisoimage -# 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/completions/getent b/completions/getent index 54e62ab8..1bb12f52 100644 --- a/completions/getent +++ b/completions/getent @@ -1,14 +1,30 @@ -# bash completion for getent +# bash completion for getent -*- shell-script -*- -have getent && _getent() { - local cur prev + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur prev + local i db + for (( i=1; i < cword; i++ )); do + case ${words[i]} in + -V|--version|--usage|-'?'|--help) + return + ;; + -s|--service) + (( i++ )) + ;; + -*) + ;; + *) + # First non-option value is the db + db=${words[i]} + break + ;; + esac + done - case $prev in + case $db in passwd) COMPREPLY=( $( compgen -u "$cur" ) ) return 0 @@ -26,30 +42,37 @@ _getent() return 0 ;; protocols|networks|ahosts|ahostsv4|ahostsv6|rpc) - COMPREPLY=( $( compgen -W "$( getent "$prev" | \ + COMPREPLY=( $( compgen -W "$( getent $db | \ awk '{ print $1 }' )" -- "$cur" ) ) return 0 ;; - aliases|shadow) - COMPREPLY=( $( compgen -W "$( getent "$prev" | cut -d: -f1 )" \ + aliases|shadow|gshadow) + COMPREPLY=( $( compgen -W "$( getent $db | cut -d: -f1 )" \ -- "$cur" ) ) return 0 ;; + ethers|netgroup) + return + ;; + esac + + case $prev in + -s|--service) + return + ;; esac + $split && return - if [ $COMP_CWORD -eq 1 ]; then + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + elif [[ -z $db ]]; then COMPREPLY=( $( compgen -W 'passwd group hosts services protocols \ networks ahosts ahostsv4 ahostsv6 aliases ethers netgroup rpc \ - shadow' -- "$cur" ) ) + shadow gshadow' -- "$cur" ) ) fi } && complete -F _getent getent -# 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/completions/gkrellm b/completions/gkrellm index 13e25ada..f7979b96 100644 --- a/completions/gkrellm +++ b/completions/gkrellm @@ -1,12 +1,9 @@ -# gkrellm(1) completion +# gkrellm(1) completion -*- shell-script -*- -have gkrellm || have gkrellm2 && _gkrellm() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -t|--theme) @@ -36,19 +33,10 @@ _gkrellm() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--theme --geometry --wm --m2 --nt \ - --withdrawn --config --force-host-config --server --port --nc \ - --config-clean --nolock --plugin --demo --logfile --version \ - --debug-level --help' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) fi } && complete -F _gkrellm gkrellm gkrellm2 -# 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/completions/gnatmake b/completions/gnatmake index cdd193c1..e807d923 100644 --- a/completions/gnatmake +++ b/completions/gnatmake @@ -1,12 +1,10 @@ -# Gnatmake completion by Ralf_Schroth@t-online.de (Ralf Schroth) +# Gnatmake completion -*- shell-script -*- +# by Ralf_Schroth@t-online.de (Ralf Schroth) -have gnatmake && _gnatmake() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then # relevant (and less relevant ;-) )options completion @@ -28,10 +26,4 @@ _gnatmake() } && complete -F _gnatmake gnatmake -# 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/completions/gnome-mplayer b/completions/gnome-mplayer new file mode 100644 index 00000000..00701702 --- /dev/null +++ b/completions/gnome-mplayer @@ -0,0 +1,39 @@ +# gnome-mplayer(1) completion -*- shell-script -*- + +_gnome_mplayer() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -'?'|--help|--help-all|--help-gtk) + return + ;; + --showcontrols|--showsubtitles|--autostart) + COMPREPLY=( $( compgen -w '0 1' -- "$cur" ) ) + return + ;; + --subtitle) + _filedir '@(srt|sub|txt|utf|rar|mpsub|smi|js|ssa|ass)' + return + ;; + --tvdriver) + COMPREPLY=( $( compgen -W 'v4l v4l2' -- "$cur" ) ) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help-all )' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + _filedir +} && +complete -F _gnome_mplayer gnome-mplayer + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/gpasswd b/completions/gpasswd new file mode 100644 index 00000000..eb5a7e48 --- /dev/null +++ b/completions/gpasswd @@ -0,0 +1,25 @@ +# gpasswd(1) completion -*- shell-script -*- + +_gpasswd() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -a|--add|-d|--delete|-A|--administrators|-M|--members) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # TODO: only -A and -M can be combined + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + + COMPREPLY=( $( compgen -g -- "$cur" ) ) +} && +complete -F _gpasswd gpasswd + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/gpg b/completions/gpg index 878a800b..763086bc 100644 --- a/completions/gpg +++ b/completions/gpg @@ -1,12 +1,9 @@ -# bash completion for gpg +# bash completion for gpg -*- shell-script -*- -have gpg && _gpg() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -s|--sign|--clearsign|--decrypt-files|--load-extension) @@ -24,7 +21,7 @@ _gpg() COMPREPLY=( $( compgen -W "$( gpg --list-keys 2>/dev/null | \ sed -ne 's@^.*<\([^>]*\)>.*$@\1@p')" -- "$cur" )) if [ -e ~/.gnupg/gpg.conf ]; then - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$( sed -ne \ + COMPREPLY+=( $( compgen -W "$( sed -ne \ 's@^[ \t]*group[ \t][ \t]*\([^=]*\).*$@\1@p' \ ~/.gnupg/gpg.conf )" -- "$cur") ) fi @@ -34,15 +31,8 @@ _gpg() if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$(gpg --dump-options)' -- "$cur" ) ) - fi - + fi } && complete -F _gpg -o default gpg -# 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/completions/gpg2 b/completions/gpg2 index b99783f9..03d2c5b8 100644 --- a/completions/gpg2 +++ b/completions/gpg2 @@ -1,12 +1,9 @@ -# gpg2(1) completion +# gpg2(1) completion -*- shell-script -*- -have gpg2 && { -_gpg2 () +_gpg2() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --homedir) @@ -28,7 +25,7 @@ _gpg2 () COMPREPLY=( $( compgen -W "$( gpg2 --list-keys 2>/dev/null | \ sed -ne 's@^.*<\([^>]*\)>.*$@\1@p')" -- "$cur" )) if [ -e ~/.gnupg/gpg.conf ]; then - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$( sed -ne \ + COMPREPLY+=( $( compgen -W "$( sed -ne \ 's@^[ \t]*group[ \t][ \t]*\([^=]*\).*$@\1@p' \ ~/.gnupg/gpg.conf)" -- "$cur")) fi @@ -41,12 +38,5 @@ _gpg2 () fi } && complete -F _gpg2 -o default gpg2 -} -# 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/completions/gprof b/completions/gprof new file mode 100644 index 00000000..810255a4 --- /dev/null +++ b/completions/gprof @@ -0,0 +1,65 @@ +# gprof(1) completion -*- shell-script -*- + +_gprof() +{ + local cur prev words cword split + _init_completion -s || return + + case $cur in + -A*|-C*|-J*|-p*|-P*|-q*|-Q*|-n*|-N*|-d*) + return + ;; + -S*) + cur=${cur:2} + _filedir + COMPREPLY=( "${COMPREPLY[@]/#/-S}" ) + return + ;; + -O*) + cur=${cur:2} + COMPREPLY=( $( compgen -P -O -W 'auto bsd 4.4bsd magic prof' \ + -- "$cur" ) ) + return + ;; + esac + + case $prev in + -I|--directory-path) + _filedir -d + return + ;; + -R|--file-ordering|--external-symbol-table) + _filedir + return + ;; + -w|--width|-k|-m|--min-count|-h|--help|-e|-E|-f|-F) + return + ;; + --file-format) + COMPREPLY=( $( compgen -W 'auto bsd 4.4bsd magic prof' \ + -- "$cur" ) ) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '--annotated-source --brief --exec-counts + --file-info --directory-path --no-annotated-source --print-path + --flat-profile --no-flat-profile --graph --no-graph --table-length= + --separate-files --no-exec-counts --function-ordering + --file-ordering --traditional --width= --all-lines --demangle + --no-demangle --no-static --static-call-graph + --ignore-non-functions -k --line --min-count= --time= --no-time= + --external-symbol-table= --display-unused-functions --debug --help + --file-format= --sum --version' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + _filedir +} && +complete -F _gprof gprof + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/groupadd b/completions/groupadd new file mode 100644 index 00000000..db5ff872 --- /dev/null +++ b/completions/groupadd @@ -0,0 +1,27 @@ +# groupadd(8) completion -*- shell-script -*- + +_groupadd() +{ + local cur prev words cword split + _init_completion -s || return + + # TODO: if -o/--non-unique is given, could complete on existing gids + # with -g/--gid + + case $prev in + -g|--gid|-K|--key|-p|--password) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi +} && +complete -F _groupadd groupadd + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/groupdel b/completions/groupdel new file mode 100644 index 00000000..bf6e5c6a --- /dev/null +++ b/completions/groupdel @@ -0,0 +1,5 @@ +# groupdel(8) completion -*- shell-script -*- + +complete -g groupdel + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/groupmems b/completions/groupmems new file mode 100644 index 00000000..627f8e01 --- /dev/null +++ b/completions/groupmems @@ -0,0 +1,26 @@ +# groupmems(8) completion -*- shell-script -*- + +_groupmems() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -a|--add|-d|--delete) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + -g|--group) + COMPREPLY=( $( compgen -g -- "$cur" ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi +} && +complete -F _groupmems groupmems + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/groupmod b/completions/groupmod new file mode 100644 index 00000000..1a0241a7 --- /dev/null +++ b/completions/groupmod @@ -0,0 +1,29 @@ +# groupmod(8) completion -*- shell-script -*- + +_groupmod() +{ + local cur prev words cword split + _init_completion -s || return + + # TODO: if -o/--non-unique is given, could complete on existing gids + # with -g/--gid + + case $prev in + -g|--gid|-h|--help|-n|--new-name|-p|--password) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + COMPREPLY=( $( compgen -g -- "$cur" ) ) +} && +complete -F _groupmod groupmod + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/dvd+rw-tools b/completions/growisofs index f37781ee..c4cb7162 100644 --- a/completions/dvd+rw-tools +++ b/completions/growisofs @@ -1,18 +1,16 @@ -# dvd+rw-tools completions +# growisofs(1) completion -*- shell-script -*- -have growisofs && _growisofs() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -version|-speed) return 0 ;; -Z|-M) - compopt -o nospace &>/dev/null + compopt -o nospace _dvd_devices return 0 ;; @@ -30,7 +28,7 @@ _growisofs() # TODO: mkisofs options COMPREPLY=( $( compgen -W '-dvd-compat -overburn -speed= -Z -M' \ -- "$cur" ) ) - [[ ${COMPREPLY[@]} == *= ]] && compopt -o nospace &>/dev/null + [[ ${COMPREPLY[@]} == *= ]] && compopt -o nospace return 0 fi @@ -38,10 +36,4 @@ _growisofs() } && complete -F _growisofs growisofs -# 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/completions/grpck b/completions/grpck new file mode 100644 index 00000000..0aff1439 --- /dev/null +++ b/completions/grpck @@ -0,0 +1,17 @@ +# grpck(8) completion -*- shell-script -*- + +_grpck() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + _filedir +} && +complete -F _grpck grpck + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/gzip b/completions/gzip index f7aec17e..87219630 100644 --- a/completions/gzip +++ b/completions/gzip @@ -1,13 +1,9 @@ -# bash completion for gzip +# bash completion for gzip -*- shell-script -*- -have gzip || have pigz && _gzip() { - local cur prev xspec helpopts - - COMPREPLY=() - _get_comp_words_by_ref cur prev - helpopts=`_parse_help ${COMP_WORDS[0]}` + local cur prev words cword + _init_completion || return case $prev in -b|--blocksize|-p|--processes|-S|--suffix|-h|--help|-V|--version) @@ -16,14 +12,14 @@ _gzip() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W "$helpopts -1 -2 -3 -4 -5 -6 -7 -8 -9" \ + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) {-1..-9}' \ -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 fi - local IFS=$'\n' + local IFS=$'\n' xspec="*.@(gz|t[ag]z)" - xspec="*.@(gz|t[ag]z)" if [[ "$prev" == --* ]]; then [[ "$prev" == --decompress || \ "$prev" == --list || \ @@ -32,24 +28,14 @@ _gzip() elif [[ "$prev" == -* ]]; then [[ "$prev" == -*[dlt]* ]] && xspec="!"$xspec [[ "$prev" == -*f* ]] && xspec= - elif [[ "$prev" == '>' || "$prev" == '>>' ]]; then - xspec= - elif [ "$prev" = '<' ]; then - xspec= fi _expand || return 0 - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ $( compgen -d -- "$cur" ) ) } && complete -F _gzip gzip pigz -# 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/completions/bluez b/completions/hcitool index 7a2b1e57..417a0c99 100644 --- a/completions/bluez +++ b/completions/hcitool @@ -1,17 +1,16 @@ -# bash completion for bluez utils +# bash completion for bluez utils -*- shell-script -*- -have hcitool && { _bluetooth_adresses() { if [ -n "${COMP_BLUETOOTH_SCAN:-}" ]; then - COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "$( hcitool scan | \ + COMPREPLY+=( $( compgen -W "$( hcitool scan | \ awk '/^\t/{print $1}' )" -- "$cur" ) ) fi } _bluetooth_devices() { - COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "$( hcitool dev | \ + COMPREPLY+=( $( compgen -W "$( hcitool dev | \ awk '/^\t/{print $1}' )" -- "$cur" ) ) } @@ -30,34 +29,31 @@ _bluetooth_packet_types() _hcitool() { - local cur prev split=false arg - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -i) _bluetooth_devices - return 0; + return 0 ;; --role) COMPREPLY=( $( compgen -W 'm s' -- "$cur" ) ) - return 0; + return 0 ;; --pkt-type) _bluetooth_packet_types - return 0; + return 0 ;; esac $split && return 0 + local arg _get_first_arg if [ -z $arg ]; then if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help -i' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else COMPREPLY=( $( compgen -W 'dev inq scan name info \ spinq epinq cmd con cc dc sr cpt rssi lq tpl \ @@ -107,31 +103,28 @@ _hcitool() ;; esac fi -} +} && complete -F _hcitool hcitool _sdptool() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in --bdaddr) _bluetooth_adresses - return 0; + return 0 ;; esac $split && return 0 + local arg _get_first_arg if [ -z $arg ]; then if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else COMPREPLY=( $( compgen -W 'search browse records add \ del get setattr setseq' -- "$cur" ) ) @@ -168,56 +161,54 @@ _sdptool() ;; esac fi -} +} && complete -F _sdptool sdptool _l2ping() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -i) _bluetooth_devices - return 0; + return 0 + ;; + -s|-c|-t|-d) + return 0 ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-i -s -c -t -f -r' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) else _bluetooth_adresses fi - -} +} && complete -F _l2ping l2ping _rfcomm() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -f|--config) _filedir - return 0; + return 0 ;; -i) _bluetooth_devices _bluetooth_adresses - return 0; + return 0 ;; esac + local arg _get_first_arg if [ -z $arg ]; then if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help -a --raw \ - --config -i --auth --encrypt --secure --master' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else COMPREPLY=( $( compgen -W 'show connect listen watch \ bind release' -- "$cur" ) ) @@ -236,28 +227,27 @@ _rfcomm() esac fi fi -} +} && complete -F _rfcomm rfcomm _ciptool() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -i) _bluetooth_devices _bluetooth_adresses - return 0; + return 0 ;; esac + local arg _get_first_arg if [ -z $arg ]; then if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help -i' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else COMPREPLY=( $( compgen -W 'show search connect release \ loopback' -- "$cur" ) ) @@ -272,26 +262,25 @@ _ciptool() ;; esac fi -} +} && complete -F _ciptool ciptool _dfutool() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -d|--device) _bluetooth_devices - return 0; + return 0 ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --device' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else + local args _count_args case $args in 1) @@ -303,16 +292,15 @@ _dfutool() ;; esac fi -} +} && complete -F _dfutool dfutool _hciconfig() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return + local arg _get_first_arg if [ -z $arg ]; then if [[ "$cur" == -* ]]; then @@ -349,19 +337,18 @@ _hciconfig() ;; esac fi -} +} && complete -F _hciconfig hciconfig _hciattach() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-n -p -t -b -s -l' -- "$cur" ) ) else + local args _count_args case $args in 1) @@ -386,47 +373,7 @@ _hciattach() ;; esac fi - -} +} && complete -F _hciattach hciattach -_hid2hci() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --quiet -0 --tohci -1 \ - --tohid' -- "$cur" ) ) - fi -} -complete -F _hid2hci hid2hci - -_avctrl() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --quiet' -- "$cur" ) ) - else - _count_args - if [ $args -eq 1 ]; then - COMPREPLY=( $( compgen -W 'discover switch' -- "$cur" ) ) - fi - fi -} -complete -F _avctrl avctrl -} - -# 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/completions/hddtemp b/completions/hddtemp new file mode 100644 index 00000000..75641045 --- /dev/null +++ b/completions/hddtemp @@ -0,0 +1,38 @@ +# hddtemp(8) completion -*- shell-script -*- + +_hddtemp() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -f|--file) + _filedir db + return + ;; + -l|--listen) + _ip_addresses + return + ;; + -u|--unit) + COMPREPLY=( $( compgen -W 'C F' -- "$cur" ) ) + return + ;; + -p|--port|-s|--separator|-S|--syslog|-v|--version|-h|-\?|--help) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) --help' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + else + cur=${cur:=/dev/} + _filedir + fi +} && +complete -F _hddtemp hddtemp + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/helpers/Makefile.am b/completions/helpers/Makefile.am deleted file mode 100644 index 98fccefe..00000000 --- a/completions/helpers/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -helpers_SCRIPTS = perl - -EXTRA_DIST = $(helpers_SCRIPTS) diff --git a/completions/helpers/Makefile.in b/completions/helpers/Makefile.in deleted file mode 100644 index e367369b..00000000 --- a/completions/helpers/Makefile.in +++ /dev/null @@ -1,365 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -subdir = completions/helpers -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(helpersdir)" -SCRIPTS = $(helpers_SCRIPTS) -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -am__leading_dot = @am__leading_dot@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bashcompdir = @bashcompdir@ -bindir = @bindir@ -build_alias = @build_alias@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -helpersdir = @helpersdir@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -helpers_SCRIPTS = perl -EXTRA_DIST = $(helpers_SCRIPTS) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign completions/helpers/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign completions/helpers/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-helpersSCRIPTS: $(helpers_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(helpersdir)" || $(MKDIR_P) "$(DESTDIR)$(helpersdir)" - @list='$(helpers_SCRIPTS)'; test -n "$(helpersdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) { files[d] = files[d] " " $$1; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$4, $$1 } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(helpersdir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(helpersdir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-helpersSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(helpers_SCRIPTS)'; test -n "$(helpersdir)" || exit 0; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 's,.*/,,;$(transform)'`; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(helpersdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(helpersdir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(SCRIPTS) -installdirs: - for dir in "$(DESTDIR)$(helpersdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-helpersSCRIPTS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-helpersSCRIPTS - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am \ - install-helpersSCRIPTS install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am uninstall uninstall-am \ - uninstall-helpersSCRIPTS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/completions/helpers/perl b/completions/helpers/perl deleted file mode 100755 index b3522ac0..00000000 --- a/completions/helpers/perl +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env perl -use strict; -use Config; -use File::Spec::Functions; - -my %seen; - -sub print_modules_real { - my ($base, $dir, $word) = @_; - - # return immediatly if potential completion doesn't match current word - # a double comparaison is used to avoid dealing with string lengths - # (the shorter being the pattern to be used as the regexp) - # word 'Fi', base 'File' -> match 'File' against 'Fi' - # word 'File::Sp', base 'File' -> match 'File::Sp' againt 'File' - return if - $base && - $word && - $base !~ /^\Q$word/ && - $word !~ /^\Q$base/; - - chdir($dir) or return; - - # print each file - foreach my $file (glob('*.pm')) { - $file =~ s/\.pm$//; - my $module = $base . $file; - next if $module !~ /^\Q$word/; - next if $seen{$module}++; - print $module . "\n"; - } - - # recurse in each subdirectory - foreach my $directory (grep { -d } glob('*')) { - my $subdir = $dir . '/' . $directory; - if ($directory =~ /^(?:[.\d]+|$Config{archname}|auto)$/) { - # exclude subdirectory name from base - print_modules_real(undef, $subdir, $word); - } else { - # add subdirectory name to base - print_modules_real($base . $directory . '::', $subdir, $word); - } - } -} - -sub print_modules { - my ($word) = @_; - - foreach my $directory (@INC) { - print_modules_real(undef, $directory, $word); - } -} - -sub print_functions { - my ($word) = @_; - - my $perlfunc; - for ( @INC, undef ) { - return if not defined; - $perlfunc = catfile $_, qw( pod perlfunc.pod ); - last if -r $perlfunc; - } - - open my $fh, '<', $perlfunc or return; - - my $nest_level = -1; - while ( <$fh> ) { - next if 1 .. /^=head2 Alphabetical Listing of Perl Functions$/; - ++$nest_level if /^=over/; - --$nest_level if /^=back/; - next if $nest_level; - next unless /^=item (-?\w+)/; - my $function = $1; - next if $function !~ /^\Q$word/; - next if $seen{$function}++; - print $function . "\n"; - } - -} - -my $type = shift; -my $word = shift; - -if ($type eq 'functions') { - print_functions($word); -} elsif ($type eq 'modules') { - print_modules($word); -} diff --git a/completions/hid2hci b/completions/hid2hci new file mode 100644 index 00000000..4e2ef039 --- /dev/null +++ b/completions/hid2hci @@ -0,0 +1,15 @@ +# hid2hci completion -*- shell-script -*- + +_hid2hci() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --quiet -0 --tohci -1 \ + --tohid' -- "$cur" ) ) + fi +} && +complete -F _hid2hci hid2hci + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/hping2 b/completions/hping2 index e2e6bf1a..45c2c4c6 100644 --- a/completions/hping2 +++ b/completions/hping2 @@ -1,13 +1,9 @@ -# bash completion for hping2 +# bash completion for hping2 -*- shell-script -*- -have hping || have hping2 || have hping3 && _hping2() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=`_get_pword` + local cur prev words cword + _init_completion || return case $prev in -I|--interface) @@ -29,27 +25,11 @@ _hping2() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version --count --interval --fast \ - --faster --numeric --quiet --interface --verbose --debug --bind \ - --unbind --rawip --icmp --upd --scan --listen --spoof \ - --rand-source --rand-dest --ttl --id --ipproto --winid -rel --frag \ - --morefrag --dontfrag --fragoff --mtu --tos --rroute --icmptype \ - --icmpcode --icmp-ipver --icmp-iphlen --icmp-iplen --icmp-ipid \ - --icmp-ipproto --icmp-cksum --icmp-ts --icmp-addr --baseport \ - --destport --keep --win --tcpoff --tcpseq --tcpack --seqnum \ - --badcksum --tcp-timestamp --fin --syn --rst --push --ack --urg \ - --xmas --ymas --data --file --sign --dump --print --safe --end \ - --traceroute --tr-keep-ttl --tr-stop --tr-no-rtt' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else _known_hosts_real "$cur" fi } && complete -F _hping2 hping hping2 hping3 -# 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/completions/htpasswd b/completions/htpasswd new file mode 100644 index 00000000..b0990fe1 --- /dev/null +++ b/completions/htpasswd @@ -0,0 +1,33 @@ +# htpasswd(1) completion -*- shell-script -*- + +_htpasswd() +{ + local cur prev words cword + _init_completion || return + + local i o=0 # $o is index of first non-option argument + for (( i=1; i <= cword; i++ )); do + case ${words[i]} in + -*n*) return ;; + -*) ;; + *) o=$i ; break ;; + esac + done + + if [[ $o -eq 0 || $o -eq $cword ]]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return + fi + # Password file (first non-option argument) + _filedir + + elif [[ $o -eq $cword-1 ]]; then + # Username (second non-option argument) + COMPREPLY=( $( compgen -W \ + '$( cut -d: -f1 "${words[o]}" 2>/dev/null )' -- "$cur" ) ) + fi +} && +complete -F _htpasswd htpasswd + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/iconv b/completions/iconv index 9e332004..b33cc704 100644 --- a/completions/iconv +++ b/completions/iconv @@ -1,14 +1,9 @@ -# iconv(1) completion +# iconv(1) completion -*- shell-script -*- -have iconv && _iconv() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -'?'|--help|--usage|-V|--version|--unicode-subst|--byte-subst|\ @@ -29,18 +24,11 @@ _iconv() $split && return 0 if [[ "$cur" = -* ]]; then - COMPREPLY=( $( compgen -W '--from-code --to-code --list -c - --unicode-subst --byte-subst --widechar-subst --output --silent - --verbose --help --usage --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 fi } && complete -F _iconv -o default iconv -# 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/completions/idn b/completions/idn new file mode 100644 index 00000000..14e4cc1a --- /dev/null +++ b/completions/idn @@ -0,0 +1,26 @@ +# idn(1) completion -*- shell-script -*- + +_idn() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -h|--help|-V|--version) + return + ;; + -p|--profile) + COMPREPLY=( $( compgen -W 'Nameprep iSCSI Nodeprep Resourceprep + trace SASLprep' -- "$cur" ) ) + return + ;; + esac + + if ! $split && [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _idn idn + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/iftop b/completions/iftop index 9ec2a0d0..8c606172 100644 --- a/completions/iftop +++ b/completions/iftop @@ -1,11 +1,9 @@ -# iftop(8) completion +# iftop(8) completion -*- shell-script -*- -have iftop && _iftop() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h|-f|-F|-m) @@ -21,15 +19,8 @@ _iftop() ;; esac - COMPREPLY=( $( compgen -W '-h -n -N -p -P -b -B -i -f -F -c -m' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) } && complete -F _iftop 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 diff --git a/completions/ifup b/completions/ifup new file mode 100644 index 00000000..fee87d6b --- /dev/null +++ b/completions/ifup @@ -0,0 +1,19 @@ +# Red Hat & Debian GNU/Linux if{up,down} completion -*- shell-script -*- + +_userland GNU || return 1 + +_ifupdown() +{ + local cur prev words cword + _init_completion || return + + if [ $cword -eq 1 ]; then + _configured_interfaces + COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- "$cur") ) + fi + + return 0 +} && +complete -F _ifupdown ifup ifdown ifstatus + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/ifupdown b/completions/ifupdown deleted file mode 100644 index f81e08d5..00000000 --- a/completions/ifupdown +++ /dev/null @@ -1,27 +0,0 @@ -# Red Hat & Debian GNU/Linux if{up,down} completion -# -[ $USERLAND = GNU ] && { have ifup || have ifdown; } && -_ifupdown() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [ $COMP_CWORD -eq 1 ]; then - _configured_interfaces - COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- "$cur") ) - fi - - return 0 -} && -complete -F _ifupdown ifup ifdown -[ $USERLAND = GNU ] && have ifstatus && complete -F _ifupdown ifstatus - -# 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/completions/imagemagick b/completions/imagemagick deleted file mode 100644 index c7ba74c8..00000000 --- a/completions/imagemagick +++ /dev/null @@ -1,532 +0,0 @@ -# bash completion for ImageMagick - -have convert && { -_ImageMagick() -{ - local cur prev - _get_comp_words_by_ref cur prev - - case $prev in - -channel) - COMPREPLY=( $( compgen -W 'Red Green Blue Opacity \ - Matte Cyan Magenta Yellow Black' -- "$cur" ) ) - return 0 - ;; - -colormap) - COMPREPLY=( $( compgen -W 'shared private' -- "$cur" ) ) - return 0 - ;; - -colorspace) - COMPREPLY=( $( compgen -W 'GRAY OHTA RGB Transparent \ - XYZ YCbCr YIQ YPbPr YUV CMYK' -- "$cur" ) ) - return 0 - ;; - -compose) - COMPREPLY=( $( compgen -W 'Over In Out Atop Xor Plus \ - Minus Add Subtract Difference Multiply Bumpmap\ - Copy CopyRed CopyGreen CopyBlue CopyOpacity' -- "$cur" ) ) - return 0 - ;; - -compress) - COMPREPLY=( $( compgen -W 'None BZip Fax Group4 JPEG \ - Lossless LZW RLE Zip' -- "$cur" ) ) - return 0 - ;; - -dispose) - COMPREPLY=( $( compgen -W 'Undefined None Background Previous' \ - -- "$cur" ) ) - return 0 - ;; - -encoding) - COMPREPLY=( $( compgen -W 'AdobeCustom AdobeExpert \ - AdobeStandard AppleRoman BIG5 GB2312 Latin2 \ - None SJIScode Symbol Unicode Wansung' -- "$cur")) - return 0 - ;; - -endian) - COMPREPLY=( $( compgen -W 'MSB LSB' -- "$cur" ) ) - return 0 - ;; - -filter) - COMPREPLY=( $( compgen -W 'Point Box Triangle Hermite \ - Hanning Hamming Blackman Gaussian Quadratic \ - Cubic Catrom Mitchell Lanczos Bessel Sinc' -- "$cur" ) ) - return 0 - ;; - -format) - COMPREPLY=( $( compgen -W "$( convert -list format | \ - awk '/ [r-][w-][+-] / {print $1}' | \ - tr -d '*' | tr [:upper:] [:lower:] )" -- "$cur" ) ) - return 0 - ;; - -gravity) - COMPREPLY=( $( compgen -W 'Northwest North NorthEast \ - West Center East SouthWest South SouthEast' -- "$cur" ) ) - return 0 - ;; - -intent) - COMPREPLY=( $( compgen -W 'Absolute Perceptual \ - Relative Saturation' -- "$cur" ) ) - return 0 - ;; - -interlace) - COMPREPLY=( $( compgen -W 'None Line Plane Partition' -- "$cur" ) ) - return 0 - ;; - -limit) - COMPREPLY=( $( compgen -W 'Disk File Map Memory' -- "$cur" ) ) - return 0 - ;; - -list) - COMPREPLY=( $( compgen -W 'Delegate Format Magic Module Resource \ - Type' -- "$cur" ) ) - return 0 - ;; - -map) - COMPREPLY=( $( compgen -W 'best default gray red green blue' \ - -- "$cur" ) ) - _filedir - return 0 - ;; - -noise) - COMPREPLY=( $( compgen -W 'Uniform Gaussian Multiplicative \ - Impulse Laplacian Poisson' -- "$cur" ) ) - return 0 - ;; - -preview) - COMPREPLY=( $( compgen -W 'Rotate Shear Roll Hue \ - Saturation Brightness Gamma Spiff \ - Dull Grayscale Quantize Despeckle \ - ReduceNoise AddNoise Sharpen Blur \ - Treshold EdgeDetect Spread Shade \ - Raise Segment Solarize Swirl Implode \ - Wave OilPaint CharcoalDrawing JPEG' -- "$cur" ) ) - return 0 - ;; - -mask|-profile|-texture|-tile|-write) - _filedir - return 0 - ;; - -type) - COMPREPLY=( $( compgen -W 'Bilevel Grayscale Palette PaletteMatte \ - TrueColor TrueColorMatte ColorSeparation ColorSeparationlMatte \ - Optimize' -- "$cur" ) ) - return 0 - ;; - -units) - COMPREPLY=( $( compgen -W 'Undefined PixelsPerInch \ - PixelsPerCentimeter' -- "$cur" ) ) - return 0 - ;; - -virtual-pixel) - COMPREPLY=( $( compgen -W 'Constant Edge mirror tile' -- "$cur" ) ) - return 0 - ;; - -visual) - COMPREPLY=( $( compgen -W 'StaticGray GrayScale StaticColor \ - PseudoColor TrueColor DirectColor defaut visualid' -- "$cur" )) - return 0 - ;; - esac -} - -_convert() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-adaptive-blur -adaptive-resize \ - -adaptive-sharpen -adjoin -affine -alpha -annotate \ - -antialias -append -attenuate -authenticate \ - -auto-orient -average -background -bench -bias \ - -black-point-compensation -black-threshold \ - -blue-primary -blur -border -bordercolor -caption \ - -channel -charcoal -chop -clip -clip-mask -clip-path \ - -clone -clut -coalesce -colorize -colors -colorspace \ - -combine -comment -compose -composite -compress \ - -contrast -contrast-stretch -convolve -crop -cycle \ - -debug -decipher -deconstruct -define -delay -delete \ - -density -depth -despeckle -display -dispose -distort \ - -dither -draw -edge -emboss -encipher -encoding \ - -endian -enhance -equalize -evaluate -extent -extract \ - -family -fill -filter -flatten -flip -floodfill -flop \ - -font -format -frame -fuzz -fx -gamma -gaussian-blur \ - -geometry -gravity -green-primary -help -identify \ - -implode -insert -intent -interlace -interpolate \ - -label -lat -layers -level -limit -linear-stretch \ - -liquid-rescale -list -log -loop -map -mask \ - -mattecolor -median -modulate -monitor -monochrome \ - -morph -mosaic -motion-blur -negate -noise -normalize \ - -opaque -ordered-dither -orient -page -paint -ping \ - -pointsize -polaroid -posterize -preview -print \ - -process -profile -quality -quantize -quiet \ - -radial-blur -raise -random-threshold -recolor \ - -red-primary -regard-warnings -region -render -repage \ - -resample -resize -respect-parenthesis -reverse -roll \ - -rotate -sample -sampling-factor -scale -scene -seed \ - -segment -separate -sepia-tone -set -shade -shadow \ - -sharpen -shave -shear -sigmoidal-contrast -size \ - -sketch -solarize -splice -spread -stretch -strip \ - -stroke -strokewidth -style -swap -swirl -taint \ - -texture -threshold -thumbnail -tile -tile-offset \ - -tint -transform -transparent -transparent-color \ - -transpose -transverse -treedepth -trim -type \ - -undercolor -unique-colors -units -unsharp -verbose \ - -version -view -vignette -virtual-pixel -wave \ - -weight -white-point -white-threshold \ - -write' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+adjoin +append +compress \ - +contrast +debug +dither +endian +gamma +label +map \ - +mask +matte +negate +noise +page +raise +render \ - +write' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _convert convert - -_mogrify() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-adaptive-blur -adaptive-resize \ - -adaptive-sharpen -adjoin -affine -alpha -annotate \ - -antialias -attenuate -authenticate -auto-orient \ - -background -bias -black-point-compensation \ - -black-threshold -blue-primary -blur -border \ - -bordercolor -caption -channel -charcoal -chop -clip \ - -clip-mask -clip-path -clut -colorize -colors \ - -colorspace -comment -compose -compress -contrast \ - -contrast-stretch -convolve -cycle -debug -decipher \ - -define -delay -density -depth -despeckle -display \ - -dispose -distort -dither -draw -edge -emboss \ - -encipher -encoding -endian -enhance -equalize \ - -evaluate -extent -extract -family -fill -filter \ - -flip -floodfill -flop -font -format -frame -fuzz \ - -gamma -gaussian-blur -geometry -gravity \ - -green-primary -help -identify -implode -intent \ - -interlace -interpolate -label -lat -layers -level \ - -limit -linear-stretch -liquid-rescale -list -log \ - -loop -mask -mattecolor -median -modulate -monitor \ - -monochrome -motion-blur -negate -noise -normalize \ - -opaque -ordered-dither -orient -page -paint -path \ - -ping -pointsize -polaroid -posterize -preview -print \ - -profile -quality -quantize -quiet -radial-blur \ - -raise -random-threshold -recolor -red-primary \ - -regard-warnings -region -render -repage -resample \ - -resize -roll -rotate -sample -sampling-factor -scale \ - -scene -seed -segment -sepia-tone -set -shade -shadow \ - -sharpen -shave -shear -sigmoidal-contrast -size \ - -sketch -solarize -splice -spread -stretch -strip \ - -stroke -strokewidth -style -swirl -taint -texture \ - -threshold -thumbnail -tile -tile-offset -tint \ - -transform -transparent -transparent-color -transpose \ - -transverse -treedepth -trim -type -undercolor \ - -unique-colors -units -unsharp -verbose -version \ - -view -vignette -virtual-pixel -wave -weight \ - -white-point -white-threshold' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \ - +endian +gamma +label +map +mask +matte +negate +page \ - +raise' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _mogrify mogrify - -_display() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-alpha -antialias -authenticate \ - -auto-orient -backdrop -background -border \ - -bordercolor -borderwidth -channel -clip \ - -clip-path -coalesce -colormap -colors -colorspace \ - -comment -compress -contrast -crop -debug -decipher \ - -define -delay -density -depth -despeckle -display \ - -dispose -dither -edge -endian -enhance -extract \ - -filter -flatten -flip -flop -font -foreground \ - -format -frame -gamma -geometry -help -iconGeometry \ - -iconic -identify -immutable -interlace -interpolate \ - -label -limit -list -log -loop -map -mattecolor \ - -monitor -monochrome -name -negate -page -profile \ - -quality -quantize -quiet -raise -regard-warnings \ - -remote -repage -resample -resize \ - -respect-parenthesis -roll -rotate -sample \ - -sampling-factor -scenes -seed -segment -set \ - -shared-memory -sharpen -size -strip -texture -title \ - -transparent-color -treedepth -trim -update \ - -usePixmap -verbose -version -virtual-pixel -visual \ - -window -window-group -write' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \ - +endian +gamma +label +map +matte +negate +page \ - +raise +write' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _display display - -_animate() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-alpha -authenticate -backdrop \ - -background -bordercolor -borderwidth -channel \ - -coalesce -colormap -colors -colorspace -crop -debug \ - -decipher -define -delay -density -depth -display \ - -dispose -dither -extract -filter -flatten -font \ - -foreground -format -gamma -geometry -help \ - -iconGeometry -iconic -identify -immutable -interlace \ - -interpolate -limit -list -log -loop -map -mattecolor \ - -mattecolor -monitor -monochrome -name -page -pause \ - -quantize -quiet -regard-warnings -remote -repage \ - -resample -resize -respect-parenthesis -rotate \ - -sampling-factor -scenes -seed -set -shared-memory \ - -size -strip -title -transparent-color -treedepth \ - -trim -verbose -version -virtual-pixel -visual \ - -window' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+debug +dither +gamma +map +matte' \ - -- "$cur" ) ) - else - _filedir - fi -} -complete -F _animate animate - -_identify() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-alpha -antialias -authenticate \ - -channel -colorspace -crop -debug -define -density \ - -depth -extract -format -fuzz -gamma -help -interlace \ - -interpolate -limit -list -log -monitor -ping -quiet \ - -regard-warnings -respect-parenthesis \ - -sampling-factor -seed -set -size -strip -units \ - -verbose -version -virtual-pixel' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _identify identify - -_montage() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-adjoin -affine -alpha \ - -authenticate -background -blue-primary -blur -border \ - -bordercolor -borderwidth -caption -channel -clone \ - -coalesce -colors -colorspace -comment -compose \ - -compress -crop -debug -define -density -depth \ - -display -dispose -dither -draw -encoding -endian \ - -extract -fill -filter -flatten -flip -flop -font \ - -format -frame -gamma -geometry -gravity \ - -green-primary -help -identify -interlace \ - -interpolate -label -limit -list -log -mattecolor \ - -mode -monitor -monochrome -origin -page -pointsize \ - -polaroid -profile -quality -quantize -quiet \ - -red-primary -regard-warnings -repage -resize \ - -respect-parenthesis -rotate -sampling-factor -scenes \ - -seed -set -shadow -size -strip -stroke -texture \ - -thumbnail -tile -title -transform -transparent \ - -transparent-color -treedepth -trim -type -units \ - -verbose -version -virtual-pixel \ - -white-point' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+adjoin +compress +debug +dither \ - +endian +gamma +label +matte +page' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _montage montage - -_composite() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-affine -alpha -authenticate \ - -blend -blue-primary -border -bordercolor -channel \ - -colors -colorspace -comment -compose -compress \ - -debug -decipher -define -density -depth -displace \ - -display -dispose -dissolve -dither -encipher \ - -encoding -endian -extract -filter -font -format \ - -geometry -gravity -green-primary -help -identify \ - -interlace -interpolate -label -limit -list -log \ - -monitor -monochrome -negate -page -profile -quality \ - -quantize -quiet -red-primary -regard-warnings \ - -repage -resize -respect-parenthesis -rotate \ - -sampling-factor -scene -seed -sharpen -shave -size \ - -stegano -stereo -strip -swap -thumbnail -tile \ - -transform -transparent-color -treedepth -type -units \ - -unsharp -verbose -version -virtual-pixel -watermark \ - -white-point -write' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+compress +debug +dither +endian +label \ - +matte +negate +page +write' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _composite composite - -_compare() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-alpha -authenticate -channel \ - -colorspace -compress -debug -decipher -define \ - -density -depth -encipher -extract -format -fuzz \ - -help -highlight-color -identify -interlace -limit \ - -list -log -metric -monitor -passphrase -profile \ - -quality -quantize -quiet -regard-warnings \ - -respect-parenthesis -sampling-factor -seed -set \ - -size -transparent-color -type -verbose -version \ - -virtual-pixel' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _compare compare - -_conjure() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-debug -help -list -log -monitor -quiet \ - -regard-warnings -seed -verbose -version' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _conjure conjure - -_import() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-adjoin -annotate -border -channel \ - -colors -colorspace -comment -compress -crop -debug \ - -define -delay -density -depth -descend -display \ - -dispose -dither -encipher -encoding -endian -filter \ - -format -frame -geometry -gravity -help -identify \ - -interlace -interpolate -label -limit -list -log \ - -monitor -monochrome -negate -page -pause -pointsize \ - -quality -quantize -quiet -regard-warnings -repage \ - -resize -respect-parenthesis -rotate -sampling-factor \ - -scene -screen -seed -set -silent -snaps -strip \ - -thumbnail -transparent -transparent-color -treedepth \ - -trim -type -verbose -version -virtual-pixel \ - -window' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _import import - -_stream() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _ImageMagick - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-authenticate -channel -colorspace \ - -compress -debug -define -density -depth -extract \ - -help -identify -interlace -interpolate -limit -list \ - -log -map -monitor -quantize -quiet -regard-warnings \ - -respect-parenthesis -sampling-factor -seed -set \ - -size -storage-type -transparent-color -verbose \ - -version -virtual-pixel' -- "$cur" ) ) - elif [[ "$cur" == +* ]]; then - COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) ) - else - _filedir - fi -} -complete -F _stream stream -} - -# 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/completions/info b/completions/info index 367cadef..aa16be69 100644 --- a/completions/info +++ b/completions/info @@ -1,22 +1,47 @@ -# bash completion for info +# bash completion for info -*- shell-script -*- -have info && _info() { - local cur i infopath - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword split + _init_completion -s || return _expand || return 0 - # default completion if parameter contains / - if [[ "$cur" == */* ]]; then + # default completion if parameter looks like a path + if [[ "$cur" == @(*/|[.~])* ]]; then _filedir return 0 fi - infopath='/usr/share/info' + case $prev in + -k|--apropos|--index-search|-n|--node|-h|--help|-v|--version) + return + ;; + -d) + if [[ ${1##*/} == info ]]; then + _filedir -d + return + fi + ;; + --directory) + _filedir -d + return + ;; + --dribble|-f|--file|-o|--output|--restore|-r|--raw-filename|--rcfile) + _filedir + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + local i infopath=/usr/share/info if [ "${INFOPATH: -1:1}" == ':' ]; then infopath=${INFOPATH}${infopath} @@ -38,8 +63,8 @@ _info() # weed out info dir file for (( i=0 ; i < ${#COMPREPLY[@]} ; ++i )); do if [ "${COMPREPLY[$i]}" == 'dir' ]; then - unset COMPREPLY[$i]; - fi; + unset COMPREPLY[$i] + fi done # strip suffix from info pages COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2|xz|lzma)} ) @@ -47,12 +72,6 @@ _info() return 0 } && -complete -F _info info - -# Local variables: -# mode: shell-script -# sh-basic-offset: 4 -# sh-indent-comment: t -# indent-tabs-mode: nil -# End: +complete -F _info info pinfo + # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/inject b/completions/inject new file mode 100644 index 00000000..da2d9a9e --- /dev/null +++ b/completions/inject @@ -0,0 +1,26 @@ +# mailman inject completion -*- shell-script -*- + +_inject() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -l|--listname) + _xfunc list_lists _mailman_lists + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--listname --queue --help' -- "$cur" ) ) + else + _filedir + fi + +} && +complete -F _inject inject + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/insmod b/completions/insmod new file mode 100644 index 00000000..725678e8 --- /dev/null +++ b/completions/insmod @@ -0,0 +1,34 @@ +# Linux insmod(8), modprobe(8) and modinfo(8) completion -*- shell-script -*- +# This completes on the list of all available modules for the version of the +# kernel currently running. +# +_insmod() +{ + local cur prev words cword + _init_completion || return + + # behave like lsmod for modprobe -r + if [[ ${1##*/} == modprobe && "${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 [[ $cword -gt 1 && "${words[cword-1]}" != -* ]]; then + # do module parameter completion + COMPREPLY=( $( compgen -W "$( /sbin/modinfo -p ${words[1]} | \ + cut -d: -f1 )" -- "$cur" ) ) + else + _modules $(uname -r) + fi + + return 0 +} && +complete -F _insmod insmod modprobe modinfo + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/installpkg b/completions/installpkg new file mode 100644 index 00000000..956f5d0c --- /dev/null +++ b/completions/installpkg @@ -0,0 +1,32 @@ +# Slackware Linux installpkg completion -*- shell-script -*- + +_installpkg() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + --root) + _filedir -d + return 0 + ;; + --priority) + COMPREPLY=( $( compgen -W 'ADD REC OPT SKP' -- "$cur" ) ) + return 0 + ;; + --tagfile) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--warn --md5sum --root --infobox --terse \ + --menu --ask --priority --tagfile' -- "$cur") ) + return 0 + fi + + _filedir "t[bglx]z" +} && complete -F _installpkg installpkg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/invoke-rc.d b/completions/invoke-rc.d new file mode 100644 index 00000000..fd2c1db0 --- /dev/null +++ b/completions/invoke-rc.d @@ -0,0 +1,39 @@ +# invoke-rc.d(8) completion -*- shell-script -*- +# +# Copyright (C) 2004 Servilio Afre Puentes <servilio@gmail.com> + +_invoke_rc_d() +{ + local cur prev words cword + _init_completion || return + + local sysvdir services options valid_options + + [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \ + || sysvdir=/etc/init.d + + services=( $( printf '%s ' $sysvdir/!(README*|*.sh|$_backup_glob) ) ) + services=( ${services[@]#$sysvdir/} ) + options=( --help --quiet --force --try-anyway --disclose-deny --query \ + --no-fallback ) + + if [[ ($cword -eq 1) || ("$prev" == --* ) ]]; then + valid_options=( $( \ + tr " " "\n" <<<"${words[@]} ${options[@]}" \ + | sed -ne "/$( sed "s/ /\\\\|/g" <<<"${options[@]}" )/p" \ + | sort | uniq -u \ + ) ) + COMPREPLY=( $( compgen -W '${valid_options[@]} ${services[@]}' -- "$cur" ) ) + elif [ -x $sysvdir/$prev ]; then + COMPREPLY=( $( compgen -W '`sed -e "y/|/ /" \ + -ne "s/^.*Usage:[ ]*[^ ]*[ ]*{*\([^}\"]*\).*$/\1/p" \ + $sysvdir/$prev`' -- "$cur" ) ) + else + COMPREPLY=() + fi + + return 0 +} && +complete -F _invoke_rc_d invoke-rc.d + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/ionice b/completions/ionice new file mode 100644 index 00000000..6d9bdd46 --- /dev/null +++ b/completions/ionice @@ -0,0 +1,57 @@ +# ionice(1) completion -*- shell-script -*- + +_ionice() +{ + local cur prev words cword + _init_completion || return + + local offset=0 i + for (( i=1; i <= cword; i++ )); do + case ${words[i]} in + -h) + return + ;; + -p) + offset=0 + break + ;; + -c|-n) + (( i++ )) + continue + ;; + -*) + continue + ;; + esac + offset=$i + break + done + + if [[ $offset -gt 0 ]]; then + _command_offset $offset + return + fi + + case $prev in + -c) + COMPREPLY=( $( compgen -W '{0..3}' -- "$cur" ) ) + return + ;; + -n) + COMPREPLY=( $( compgen -W '{0..7}' -- "$cur" ) ) + return + ;; + -p) + _pids + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) + return + fi +} && +complete -F _ionice ionice + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/iproute2 b/completions/ip index f5d7bbd9..08ee74fe 100644 --- a/completions/iproute2 +++ b/completions/ip @@ -1,11 +1,9 @@ -# iproute2 tools completion +# ip(8) completion -*- shell-script -*- -have ip && _ip() { - COMPREPLY=() local cur prev words cword - _get_comp_words_by_ref cur prev words cword + _init_completion || return case $prev in -V|-Version|-rc|-rcvbuf) @@ -39,7 +37,7 @@ _ip() -*) local c="-Version -statistics -details -resolve -family -oneline -timestamp -batch -rcvbuf" - [[ $cword -eq 1 ]] && c="$c -force" + [[ $cword -eq 1 ]] && c+=" -force" COMPREPLY=( $( compgen -W "$c" -- "$cur" ) ) return 0 ;; @@ -91,7 +89,7 @@ _ip() local c="arp dynamic multicast allmulticast promisc trailers txqueuelen name address broadcast mtu netns alias" - [[ $prev != @(up|down) ]] && c="$c up down" + [[ $prev != @(up|down) ]] && c+=" up down" COMPREPLY=( $( compgen -W "$c" -- "$cur" ) ) ;; esac @@ -276,10 +274,4 @@ _ip() } && complete -F _ip ip -# 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/completions/ipmitool b/completions/ipmitool index 3a90eeb4..81a6466f 100644 --- a/completions/ipmitool +++ b/completions/ipmitool @@ -1,6 +1,4 @@ -# bash completion for ipmitool - -have ipmitool && { +# bash completion for ipmitool -*- shell-script -*- _ipmitool_singleline_help() { @@ -10,10 +8,8 @@ _ipmitool_singleline_help() _ipmitool() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h|-V|-p|-U|-e|-k|-y|-P|-m|-b|-t|-B|-T|-l) @@ -42,8 +38,7 @@ _ipmitool() return 0 ;; -C) - COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{0..14}' -- "$cur" ) ) return 0 ;; -L) @@ -63,8 +58,7 @@ _ipmitool() 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" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h)' -- "$cur" ) ) return 0 fi @@ -74,10 +68,10 @@ _ipmitool() 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 (( i=1; i < ${#words[@]}-1; i++ )); do + [[ -n $cmd ]] && subcmd=${words[i]} && break for c in ${cmds[@]}; do - [ ${COMP_WORDS[i]} = $c ] && cmd=$c && break + [ ${words[i]} = $c ] && cmd=$c && break done done @@ -200,15 +194,7 @@ _ipmitool() ;; esac -} - } && complete -F _ipmitool 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 diff --git a/completions/ipsec b/completions/ipsec index acb8c995..1a081028 100644 --- a/completions/ipsec +++ b/completions/ipsec @@ -1,22 +1,31 @@ -# Linux ipsec(8) completion (for FreeS/WAN) +# Linux ipsec(8) completion (for FreeS/WAN and strongSwan) -*- shell-script -*- + +# Complete ipsec.conf conn entries. # -[ $UNAME = Linux ] && have ipsec && -_ipsec() +# Reads a file from stdin in the ipsec.conf(5) format. +_ipsec_connections() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local keyword name + while read -r keyword name; do + if [[ $keyword = [#]* ]]; then continue; fi + [[ $keyword == conn && $name != '%default' ]] && COMPREPLY+=( "$name" ) + done + COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) +} +_ipsec_freeswan() +{ + local cur prev words cword + _init_completion || return - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W 'auto barf eroute klipsdebug look manual \ pluto ranbits rsasigkey setup showdefaults showhostkey spi spigrp \ tncfg whack' -- "$cur" ) ) return 0 fi - case ${COMP_WORDS[1]} in + case ${words[1]} in auto) COMPREPLY=( $( compgen -W '--asynchronous --up --add --delete \ --replace --down --route --unroute \ @@ -39,13 +48,61 @@ _ipsec() esac return 0 -} && -complete -F _ipsec ipsec - -# Local variables: -# mode: shell-script -# sh-basic-offset: 4 -# sh-indent-comment: t -# indent-tabs-mode: nil -# End: +} + +_ipsec_strongswan() +{ + local cur prev words cword + _init_completion || return + + if [ $cword -eq 1 ]; then + COMPREPLY=( $( compgen -W 'down irdumm leases listaacerts listacerts \ + listalgs listall listcacerts listcainfos listcards listcerts \ + listcrls listgroups listocsp listocspcerts listpubkeys openac pki + pluto pool purgecerts purgecrls purgeike purgeocsp ready reload \ + rereadaacerts rereadacerts rereadall rereadcacerts rereadcrls \ + rereadgroups rereadocspcerts rereadsecrets restart route scdecrypt \ + scencrypt scepclient secrets start starter status statusall stop \ + stroke unroute uci up update version whack --confdir --copyright \ + --directory --help --version --versioncode' -- "$cur" ) ) + return 0 + fi + + case ${words[1]} in + down|route|status|statusall|unroute|up) + local confdir=$( ipsec --confdir ) + _ipsec_connections < "$confdir/ipsec.conf" + ;; + list*) + COMPREPLY=( $( compgen -W '--utc' -- "$cur" ) ) + ;; + restart|start) + COMPREPLY=( $( compgen -W '--attach-gdb --auto-update --debug \ + --debug-all --debug-more --nofork' -- "$cur" ) ) + ;; + pki) + COMPREPLY=( $( compgen -W '--gen --issue --keyid --print --pub \ + --req --self --signcrl --verify' -- "$cur" ) ) + ;; + pool) + ;; + irdumm) + _filedir 'rb' + ;; + *) + ;; + esac + + return 0 +} + +case "$( ipsec --version 2>/dev/null )" in + *strongSwan*) + complete -F _ipsec_strongswan ipsec + ;; + *) + complete -F _ipsec_freeswan ipsec + ;; +esac + # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/iptables b/completions/iptables index bd0e4622..b9314f23 100644 --- a/completions/iptables +++ b/completions/iptables @@ -1,24 +1,20 @@ -# bash completion for iptables +# bash completion for iptables -*- shell-script -*- -have iptables && _iptables() { - local cur prev table chain + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - chain='s/^Chain \([^ ]\{1,\}\).*$/\1/p' + local table chain='s/^Chain \([^ ]\{1,\}\).*$/\1/p' - if [[ $COMP_LINE == *-t\ *filter* ]]; then + if [[ ${words[@]} == *-t\ *filter* ]]; then table="-t filter" - elif [[ $COMP_LINE == *-t\ *nat* ]]; then + elif [[ ${words[@]} == *-t\ *nat* ]]; then table="-t nat" - elif [[ $COMP_LINE == *-t\ *mangle* ]]; then + elif [[ ${words[@]} == *-t\ *mangle* ]]; then table="-t mangle" fi - _split_longopt - case $prev in -*[AIDRPFXLZ]) COMPREPLY=( $( compgen -W '`iptables $table -nL | \ @@ -61,10 +57,4 @@ _iptables() } && complete -F _iptables iptables -# 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/completions/ipv6calc b/completions/ipv6calc index 20e810df..102f8327 100644 --- a/completions/ipv6calc +++ b/completions/ipv6calc @@ -1,14 +1,9 @@ -have ipv6calc && +# ipv6calc completion -*- shell-script -*- + _ipv6calc() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref -n = cur prev - #cur=`_get_cword =` - #prev=`_get_pword` - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case "$prev" in -d|--debug) @@ -48,10 +43,4 @@ _ipv6calc() } && complete -F _ipv6calc ipv6calc -# 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/completions/open-iscsi b/completions/iscsiadm index 8c650d59..326dc208 100644 --- a/completions/open-iscsi +++ b/completions/iscsiadm @@ -1,42 +1,36 @@ -# iscsiadm(1) completion +# iscsiadm(1) completion -*- shell-script -*- -have iscsiadm && _iscsiadm() { - local cur prev mode split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -m|--mode) COMPREPLY=( $( compgen -W 'discovery node session iface fw host' \ -- "$cur" ) ) - return 0; + return 0 ;; -o|--op) COMPREPLY=( $( compgen -W 'new delete update show' -- "$cur" ) ) - return 0; + return 0 ;; -t|--type) COMPREPLY=( $( compgen -W 'sendtargets st slp isns fw' -- "$cur" ) ) - return 0; + return 0 ;; -L|-U|--loginall|--logoutall) COMPREPLY=( $( compgen -W 'all manual automatic' -- "$cur" ) ) - return 0; + return 0 ;; esac $split && return 0 local options - if [[ $COMP_CWORD -gt 1 ]] ; then - mode=${COMP_WORDS[2]} + if [[ $cword -gt 1 ]] ; then - case $mode in + case ${words[2]} in discovery) options='--help --version --debug --print --interface --type \ --portal --login --op --name --value' @@ -69,10 +63,4 @@ _iscsiadm() } && complete -F _iscsiadm iscsiadm -# 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/completions/isql b/completions/isql index f0ddbd75..695654f3 100644 --- a/completions/isql +++ b/completions/isql @@ -1,20 +1,14 @@ -# isql completion by Victor Bogado da Silva Lins <victor@bogado.net> +# isql completion -*- shell-script -*- +# by Victor Bogado da Silva Lins <victor@bogado.net> -have isql && _isql() { - local cur - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return [ -f "$ODBCINI" ] \ && COMPREPLY=( $( command grep \\["$cur" "$ODBCINI" | tr -d \\[\\] ) ) } && complete -F _isql isql -# 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/completions/iwconfig b/completions/iwconfig new file mode 100644 index 00000000..81dda723 --- /dev/null +++ b/completions/iwconfig @@ -0,0 +1,90 @@ +# iwconfig completion -*- shell-script -*- + +_iwconfig() +{ + local cur prev words cword + _init_completion || return + + case $prev in + mode) + COMPREPLY=( $( compgen -W 'managed ad-hoc master \ + repeater secondary monitor' -- "$cur" ) ) + return 0 + ;; + essid) + COMPREPLY=( $( compgen -W 'on off any' -- "$cur" ) ) + if [ -n "${COMP_IWLIST_SCAN:-}" ]; then + COMPREPLY+=( $( compgen -W \ + "$( iwlist ${words[1]} scan | \ + awk -F'\"' '/ESSID/ {print $2}' )" -- "$cur" ) ) + fi + return 0 + ;; + nwid) + COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) + return 0 + ;; + channel) + COMPREPLY=( $( compgen -W "$( iwlist ${words[1]} channel | \ + awk '/^[ \t]*Channel/ {print $2}' )" -- "$cur" ) ) + return 0 + ;; + + freq) + COMPREPLY=( $( compgen -W "$( iwlist ${words[1]} channel | \ + awk '/^[ \t]*Channel/ {print $4"G"}')" -- "$cur" ) ) + return 0 + ;; + ap) + COMPREPLY=( $( compgen -W 'on off any' -- "$cur" ) ) + if [ -n "${COMP_IWLIST_SCAN:-}" ]; then + COMPREPLY+=( $( compgen -W \ + "$( iwlist ${words[1]} scan | \ + awk -F ': ' '/Address/ {print $2}' )" -- "$cur" ) ) + fi + return 0 + ;; + rate) + COMPREPLY=( $( compgen -W 'auto fixed' -- "$cur" ) ) + COMPREPLY+=( $( compgen -W \ + "$( iwlist ${words[1]} rate | \ + awk '/^[ \t]*[0-9]/ {print $1"M"}' )" -- "$cur" ) ) + return 0 + ;; + rts|frag) + COMPREPLY=( $( compgen -W 'auto fixed off' -- "$cur" ) ) + return 0 + ;; + key|enc) + COMPREPLY=( $( compgen -W 'off on open restricted' -- "$cur" ) ) + return 0 + ;; + power) + COMPREPLY=( $( compgen -W 'period timeout off on' -- "$cur" ) ) + return 0 + ;; + txpower) + COMPREPLY=( $( compgen -W 'off on auto' -- "$cur" ) ) + return 0 + ;; + retry) + COMPREPLY=( $( compgen -W 'limit lifetime' -- "$cur" ) ) + return 0 + ;; + esac + + if [ $cword -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W 'essid nwid mode freq channel sens mode \ + ap nick rate rts frag enc key power txpower commit' -- "$cur" ) ) + fi + +} && +complete -F _iwconfig iwconfig + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/iwlist b/completions/iwlist new file mode 100644 index 00000000..39bfa0f1 --- /dev/null +++ b/completions/iwlist @@ -0,0 +1,22 @@ +# iwlist completion -*- shell-script -*- + +_iwlist() +{ + local cur prev words cword + _init_completion || return + + if [ $cword -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W 'scan scanning freq frequency \ + channel rate bit bitrate key enc encryption power \ + txpower retry ap accesspoint peers event' -- "$cur" ) ) + fi +} && +complete -F _iwlist iwlist + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/iwpriv b/completions/iwpriv new file mode 100644 index 00000000..b0d45043 --- /dev/null +++ b/completions/iwpriv @@ -0,0 +1,31 @@ +# iwpriv completion -*- shell-script -*- + +_iwpriv() +{ + local cur prev words cword + _init_completion || return + + case $prev in + roam) + COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) + return 0 + ;; + port) + COMPREPLY=( $( compgen -W 'ad-hoc managed' -- "$cur" ) ) + return 0 + ;; + esac + + if [ $cword -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W '--all roam port' -- "$cur" ) ) + fi +} && +complete -F _iwpriv iwpriv + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/iwspy b/completions/iwspy new file mode 100644 index 00000000..4bffc76e --- /dev/null +++ b/completions/iwspy @@ -0,0 +1,20 @@ +# iwspy completion -*- shell-script -*- + +_iwspy() +{ + local cur prev words cword + _init_completion || return + + if [ $cword -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W 'setthr getthr off' -- "$cur" ) ) + fi +} && +complete -F _iwspy iwspy + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/jar b/completions/jar index d703019d..f16d7f70 100644 --- a/completions/jar +++ b/completions/jar @@ -1,24 +1,21 @@ -# jar(1) completion +# jar(1) completion -*- shell-script -*- -have jar && _jar() { - local cur + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur - - if [ $COMP_CWORD = 1 ]; then + if [[ $cword -eq 1 ]]; then COMPREPLY=( $( compgen -W 'c t x u' -- "$cur" ) ) return 0 fi - case ${COMP_WORDS[1]} in + case ${words[1]} in *c*f) _filedir ;; *f) - _filedir '@([ejw]ar|zip|apk)' + _filedir '@([ejsw]ar|zip|apk)' ;; *) _filedir @@ -27,10 +24,4 @@ _jar() } && complete -F _jar jar -# 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/completions/jarsigner b/completions/jarsigner new file mode 100644 index 00000000..02befae7 --- /dev/null +++ b/completions/jarsigner @@ -0,0 +1,56 @@ +# jarsigner(1) completion -*- shell-script -*- + +_jarsigner() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -keystore) + COMPREPLY=( $( compgen -W 'NONE' -- "$cur" ) ) + _filedir '@(jks|ks|p12|pfx)' + return 0 + ;; + -storepass|-keypass|-sigfile|-digestalg|-sigalg|-tsacert|-altsigner|\ + -altsignerpath|-providerName|-providerClass|-providerArg) + return 0 + ;; + -storetype) + COMPREPLY=( $( compgen -W 'JKS PKCS11 PKCS12' -- "$cur" ) ) + return 0 + ;; + -signedjar) + _filedir jar + return 0 + ;; + -tsa) + _filedir + return 0 + ;; + esac + + # Check if a jar was already given. + local i jar=false + for (( i=0; i < ${#words[@]}-1; i++ )) ; do + if [[ "${words[i]}" == *.jar && \ + "${words[i-1]}" != -signedjar ]] ; then + jar=true + break + fi + done + + if ! $jar ; then + if [[ "$cur" == -* ]] ; then + # Documented as "should not be used": -internalsf, -sectionsonly + COMPREPLY=( $( compgen -W '-keystore -storepass -storetype \ + -keypass -sigfile -signedjar -digestalg -sigalg -verify \ + -verbose -certs -tsa -tsacert -altsigner -altsignerpath \ + -protected -providerName -providerClass -providerArg' \ + -- "$cur" ) ) + fi + _filedir jar + fi +} && +complete -F _jarsigner jarsigner + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/java b/completions/java index 460ae285..e02f7369 100644 --- a/completions/java +++ b/completions/java @@ -1,23 +1,21 @@ -# bash completion for java, javac and javadoc +# bash completion for java, javac and javadoc -*- shell-script -*- # available path elements completion -have java || have javac || have javadoc && _java_path() { cur=${cur##*:} _filedir '@(jar|zip)' } -have java || have javadoc && { # exact classpath determination _java_find_classpath() { local i # search first in current options - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -@(cp|classpath) ]]; then - classpath=${COMP_WORDS[i+1]} + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -@(cp|classpath) ]]; then + classpath=${words[i+1]} break fi done @@ -35,15 +33,16 @@ _java_find_sourcepath() local i # search first in current options - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -sourcepath ]]; then - sourcepath=${COMP_WORDS[i+1]} + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -sourcepath ]]; then + sourcepath=${words[i+1]} break fi done # default to classpath if [ -z "$sourcepath" ]; then + local classpath _java_find_classpath sourcepath=$classpath fi @@ -63,20 +62,20 @@ _java_classes() for i in ${classpath//:/ }; do if [[ "$i" == *.@(jar|zip) && -r $i ]]; then if type zipinfo &>/dev/null; then - COMPREPLY=( "${COMPREPLY[@]}" $( zipinfo -1 \ - "$i" "$cur*" 2>/dev/null | \ + COMPREPLY+=( $( zipinfo -1 "$i" "$cur*" 2>/dev/null | \ command grep '^[^$]*\.class$' ) ) else - COMPREPLY=( "${COMPREPLY[@]}" $( jar tf "$i" \ - "$cur" | command grep '^[^$]*\.class$' ) ) + COMPREPLY+=( $( jar tf "$i" "$cur" | \ + command grep '^[^$]*\.class$' ) ) fi elif [ -d $i ]; then - # Intentionally looking for *.class only in $i (not subdirs), - # see Debian bug #496828. - COMPREPLY=( "${COMPREPLY[@]}" - $( command ls $i/$cur*.class 2>/dev/null | \ - sed -ne '/\$/d' -e "s|^$i//*||p" ) ) + COMPREPLY+=( + $( compgen -d -- "$i/$cur" | sed -e "s|^$i/\(.*\)|\1.|" ) + $( compgen -f -X '!*.class' -- "$i/$cur" | \ + sed -e '/\$/d' -e "s|^$i/||" ) + ) + [[ $COMPREPLY == *.class ]] || compopt -o nospace # FIXME: if we have foo.class and foo/, the completion # returns "foo/"... how to give precedence to files @@ -103,8 +102,8 @@ _java_packages() # parse each sourcepath element for packages for i in ${sourcepath//:/ }; do if [ -d $i ]; then - COMPREPLY=( "${COMPREPLY[@]}" $( command ls -F -d \ - $i/$cur* 2>/dev/null | sed -e 's|^'$i'/||' ) ) + COMPREPLY+=( $( command ls -F -d $i/$cur* 2>/dev/null | \ + sed -e 's|^'$i'/||' ) ) fi done # keep only packages @@ -114,17 +113,15 @@ _java_packages() # convert path syntax to package syntax cur=${COMPREPLY[@]//\//.} } -} # java completion # -have java && _java() { - local cur prev words cword i + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev words cword + local i for ((i=1; i < $cword; i++)); do case ${words[$i]} in @@ -214,11 +211,9 @@ _java() esac if [[ "$cur" == -* ]]; then - # standard options - COMPREPLY=( $( compgen -W '-client -server -agentlib: -agentpath: - -classpath -D -d32 -d64 -enableassertions -disableassertions - -enablesystemassertions -disablesystemassertions -jar -javaagent: - -verbose -verbose -version -showversion -help -X' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + [[ $cur == -X* ]] && \ + COMPREPLY+=( $( compgen -W '$( _parse_help "$1" -X )' -- "$cur" ) ) else if [[ "$prev" == -jar ]]; then # jar file completion @@ -229,20 +224,16 @@ _java() fi fi - [[ ${#COMPREPLY[@]} -eq 1 && ${COMPREPLY[0]} == -*[:=] ]] && \ - type compopt &>/dev/null && compopt -o nospace + [[ $COMPREPLY == -*[:=] ]] && compopt -o nospace __ltrim_colon_completions "$cur" } && complete -F _java java -have javadoc && _javadoc() { - COMPREPLY=() - local cur prev classpath - - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -overview|-helpfile) @@ -254,7 +245,6 @@ _javadoc() return 0 ;; -d|-link|-linkoffline) - # TODO: -linkoffline takes two arguments _filedir -d return 0 ;; @@ -264,21 +254,14 @@ _javadoc() ;; esac + # -linkoffline takes two arguments + if [[ $cword -gt 2 && ${words[$cword-2]} == -linkoffline ]]; then + _filedir -d + return + fi + if [[ "$cur" == -* ]]; then - # relevant options completion - COMPREPLY=( $( compgen -W '-overview -public -protected \ - -package -private -help -doclet -docletpath \ - -sourcepath -classpath -exclude -subpackages \ - -breakiterator -bootclasspath -source -extdirs \ - -verbose -locale -encoding -J -d -use -version \ - -author -docfilessubdirs -splitindex \ - -windowtitle -doctitle -header -footer -bottom \ - -link -linkoffline -excludedocfilessubdir \ - -group -nocomment -nodeprecated -noqualifier \ - -nosince -nodeprecatedlist -notree -noindex \ - -nohelp -nonavbar -quiet -serialwarn -tag \ - -taglet -tagletpath -charset -helpfile \ - -linksource -stylesheetfile -docencoding' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) else # source files completion _filedir java @@ -288,13 +271,10 @@ _javadoc() } && complete -F _javadoc javadoc -have javac && _javac() { - COMPREPLY=() - local cur prev - - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion -n : || return case $prev in -d) @@ -307,227 +287,32 @@ _javac() ;; esac + if [[ $cur == -+([a-zA-z0-9-_]):* ]]; then + # Parse required options from -foo:{bar,quux,baz} + local helpopt=-help + [[ $cur == -X* ]] && helpopt=-X + # For some reason there may be -g:none AND -g:{lines,source,vars}; + # convert the none case to the curly brace format so it parses like + # the others. + local opts=$( "$1" $helpopt 2>&1 | sed -e 's/-g:none/-g:{none}/' -ne \ + "s/^[[:space:]]*${cur%%:*}:{\([^}]\{1,\}\)}.*/\1/p" ) + COMPREPLY=( $( compgen -W "${opts//,/ }" -- "${cur#*:}" ) ) + return + fi + if [[ "$cur" == -* ]]; then - # relevant options completion - COMPREPLY=( $( compgen -W '-g -g:none -g:lines -g:vars \ - -g:source -O -nowarn -verbose -deprecation -classpath \ - -sourcepath -bootclasspath -extdirs -d -encoding -source \ - -target -help' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + [[ $cur == -X* ]] && \ + COMPREPLY+=( $( compgen -W '$( _parse_help "$1" -X )' -- "$cur" ) ) else # source files completion _filedir java fi -} && -complete -F _javac javac - -have pack200 && -_pack200() -{ - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev - - case $prev in - -S|--segment-limit|-P|--pass-file|-C|--class-attribute|\ - -F|--field-attribute|-M|--method-attribute|-D|--code-attribute|\ - '-?'|-h|--help|-V|--version|-J) - return 0 - ;; - -E|--effort) - COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9' -- "$cur" ) ) - return 0 - ;; - -H|--deflate-hint) - COMPREPLY=( $( compgen -W 'true false keep' -- "$cur" ) ) - return 0 - ;; - -m|--modification-time) - COMPREPLY=( $( compgen -W 'latest keep' -- "$cur" ) ) - return 0 - ;; - -U|--unknown-attribute) - COMPREPLY=( $( compgen -W 'error strip pass' -- "$cur" ) ) - return 0 - ;; - -f|--config-file) - _filedir properties - return 0 - ;; - -l|--log-file) - COMPREPLY=( $( compgen -W '-' -- "$cur" ) ) - _filedir log - return 0 - ;; - -r|--repack) - _filedir jar - return 0 - ;; - esac - - # Check if a pack or a jar was already given. - local i pack=false jar=false - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do - case ${COMP_WORDS[i]} in - *.pack|*.pack.gz) pack=true ;; - *.jar) jar=true ;; - esac - done - - if ! $pack ; then - if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '--no-gzip --gzip --strip-debug \ - --no-keep-file-order --segment-limit= --effort= \ - --deflate-hint= --modification-time= --pass-file= \ - --unknown-attribute= --class-attribute= --field-attribute= \ - --method-attribute= --code-attribute= --config-file= \ - --verbose --quiet --log-file= --help --version -J \ - --repack' -- "$cur" ) ) - [[ ${#COMPREPLY[@]} -eq 1 && ${COMPREPLY[0]} == *= ]] && \ - type compopt &>/dev/null && compopt -o nospace - else - _filedir 'pack?(.gz)' - fi - elif ! $jar ; then - _filedir jar - fi -} && -complete -F _pack200 pack200 -have unpack200 && -_unpack200() -{ - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + [[ $COMPREPLY == -*[:=] ]] && compopt -o nospace - case $prev in - '-?'|-h|--help|-V|--version|-J) - return 0 - ;; - -H|--deflate-hint) - COMPREPLY=( $( compgen -W 'true false keep' -- "$cur" ) ) - return 0 - ;; - -l|--log-file) - COMPREPLY=( $( compgen -W '-' -- "$cur" ) ) - _filedir log - return 0 - ;; - esac - - # Check if a pack or a jar was already given. - local i pack=false jar=false - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do - case ${COMP_WORDS[i]} in - *.pack|*.pack.gz) pack=true ;; - *.jar) jar=true ;; - esac - done - - if ! $pack ; then - if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '--deflate-hint= --remove-pack-file \ - --verbose --quiet --log-file= --help --version' -- "$cur" ) ) - [[ ${#COMPREPLY[@]} -eq 1 && ${COMPREPLY[0]} == *= ]] && \ - type compopt &>/dev/null && compopt -o nospace - else - _filedir 'pack?(.gz)' - fi - elif ! $jar ; then - _filedir jar - fi -} && -complete -F _unpack200 unpack200 - -have jarsigner && -_jarsigner() -{ - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev - - case $prev in - -keystore) - COMPREPLY=( $( compgen -W 'NONE' -- "$cur" ) ) - _filedir '@(jks|ks|p12|pfx)' - return 0 - ;; - -storepass|-keypass|-sigfile|-digestalg|-sigalg|-tsacert|-altsigner|\ - -altsignerpath|-providerName|-providerClass|-providerArg) - return 0 - ;; - -storetype) - COMPREPLY=( $( compgen -W 'JKS PKCS11 PKCS12' -- "$cur" ) ) - return 0 - ;; - -signedjar) - _filedir jar - return 0 - ;; - -tsa) - _filedir - return 0 - ;; - esac - - # Check if a jar was already given. - local i jar=false - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do - if [[ "${COMP_WORDS[i]}" == *.jar && \ - "${COMP_WORDS[i-1]}" != -signedjar ]] ; then - jar=true - break - fi - done - - if ! $jar ; then - if [[ "$cur" == -* ]] ; then - # Documented as "should not be used": -internalsf, -sectionsonly - COMPREPLY=( $( compgen -W '-keystore -storepass -storetype \ - -keypass -sigfile -signedjar -digestalg -sigalg -verify \ - -verbose -certs -tsa -tsacert -altsigner -altsignerpath \ - -protected -providerName -providerClass -providerArg' \ - -- "$cur" ) ) - fi - _filedir jar - fi + __ltrim_colon_completions "$cur" } && -complete -F _jarsigner jarsigner - -have javaws && -_javaws() -{ - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev - - case $prev in - -help|-license|-about|-viewer|-arg|-param|-property|-update|-umask) - return 0 - ;; - -basedir|-codebase) - _filedir -d - return 0 - ;; - -uninstall|-import) - _filedir jnlp - return 0 - ;; - esac - - if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W "$( _parse_help "$1" -help ) " -- "$cur" ) ) - return 0 - fi +complete -F _javac javac - _filedir jnlp -} && -complete -F _javaws javaws - -# 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/completions/javaws b/completions/javaws new file mode 100644 index 00000000..b9afefd7 --- /dev/null +++ b/completions/javaws @@ -0,0 +1,34 @@ +# javaws(1) completion -*- shell-script -*- + +_javaws() +{ + local cur prev words cword + _init_completion -n = || return + + case $prev in + -help|-license|-about|-viewer|-arg|-param|-property|-update|-umask) + return 0 + ;; + -basedir|-codebase) + _filedir -d + return 0 + ;; + -uninstall|-import) + _filedir jnlp + return 0 + ;; + esac + + if [[ $cur == *= ]]; then + return 0 + elif [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W "$( _parse_help "$1" -help ) " -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + _filedir jnlp +} && +complete -F _javaws javaws + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/jps b/completions/jps new file mode 100644 index 00000000..774ad6ce --- /dev/null +++ b/completions/jps @@ -0,0 +1,25 @@ +# jps(1) completion -*- shell-script -*- + +_jps() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -J*|-help) + return + ;; + esac + + if [[ $cur == -* ]]; then + # Not using _parse_usage because output has [-help] which does not + # mean -h, -e, -l, -p... + COMPREPLY=( $( compgen -W "-q -m -l -v -V -J -help" -- "$cur" ) ) + [[ $COMPREPLY == -J* ]] && compopt -o nospace + else + _known_hosts_real "$cur" + fi +} && +complete -F _jps jps + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/k3b b/completions/k3b index 1965717b..9c03642f 100644 --- a/completions/k3b +++ b/completions/k3b @@ -1,11 +1,9 @@ -# bash completion for k3b +# bash completion for k3b -*- shell-script -*- -have k3b && _k3b() { - local cur prev - _get_comp_words_by_ref cur prev - COMPREPLY=() + local cur prev words cword + _init_completion || return case $prev in --help*|--author|-v|--version|--license|--lang) @@ -40,16 +38,11 @@ _k3b() if [[ "$cur" == -* ]] ; then COMPREPLY=( $( compgen -W "$( _parse_help "$1" )" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else _filedir fi } && complete -F _k3b k3b -# 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/completions/kcov b/completions/kcov new file mode 100644 index 00000000..e0f37fdb --- /dev/null +++ b/completions/kcov @@ -0,0 +1,39 @@ +# kcov completion -*- shell-script -*- + +_kcov() +{ + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + --pid|-p) + _pids + return 0 + ;; + --sort-type|-s) + COMPREPLY=( $( compgen -W 'filename percentage' -- "$cur" ) ) + return 0 + ;; + --include-path|--exclude-path) + _filedir + return 0 + ;; + --limits|-l|--title|-t|--include-pattern|--exclude-pattern|\ + --path-strip-level) + # argument required but no completions available + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + _filedir +} && complete -F _kcov kcov + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/kill b/completions/kill new file mode 100644 index 00000000..ed5ae585 --- /dev/null +++ b/completions/kill @@ -0,0 +1,29 @@ +# kill(1) completion -*- shell-script -*- + +_kill() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -s) + _signals + return + ;; + -l) + return + ;; + esac + + if [[ $cword -eq 1 && "$cur" == -* ]]; then + # return list of available signals + _signals - + COMPREPLY+=( $( compgen -W "-s -l" -- "$cur" ) ) + else + # return list of available PIDs + _pids + fi +} && +complete -F _kill kill + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/killall b/completions/killall new file mode 100644 index 00000000..d2f6dd47 --- /dev/null +++ b/completions/killall @@ -0,0 +1,35 @@ +# killall(1) and pkill(1) completion -*- shell-script -*- + +_killall() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -Z|--context|-o|--older-than|-y|--younger-than|-V|--version) + return + ;; + -s|--signal) + [[ $1 == *killall ]] && _signals + return + ;; + -u|--user) + _allowed_users + return + ;; + esac + + $split && return + + if [[ $cword -eq 1 && "$cur" == -* ]]; then + _signals - + else + _pnames + fi + + return 0 +} && +complete -F _killall pkill +[[ $OSTYPE == *@(linux|freebsd|darwin)* ]] && complete -F _killall killall || : + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/kldload b/completions/kldload index e5bce0a3..26ab0e19 100644 --- a/completions/kldload +++ b/completions/kldload @@ -1,40 +1,22 @@ -# bash completion for FreeBSD kernel module commands +# FreeBSD kldload completion -*- shell-script -*- -[ $UNAME = FreeBSD ] && -{ +[[ $OSTYPE == *freebsd* ]] || return 1 _kldload() { - local cur moddir + local cur prev words cword + _init_completion || return - moddir=/modules/ + local moddir=/modules/ [ -d $moddir ] || moddir=/boot/kernel/ - _get_comp_words_by_ref cur - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -f "$moddir$cur" ) ) COMPREPLY=( ${COMPREPLY[@]#$moddir} ) COMPREPLY=( ${COMPREPLY[@]%.ko} ) return 0 -} +} && complete -F _kldload kldload -_kldunload() -{ - local cur - _get_comp_words_by_ref cur - COMPREPLY=( $( kldstat | \ - sed -ne "s/^.*[ \t]\{1,\}\($cur[a-z_]\{1,\}\).ko$/\1/p" ) ) -} -complete -F _kldunload kldunload - -} - -# 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/completions/kldunload b/completions/kldunload new file mode 100644 index 00000000..adb268d8 --- /dev/null +++ b/completions/kldunload @@ -0,0 +1,15 @@ +# FreeBSD kldunload completion -*- shell-script -*- + +[[ $OSTYPE == *freebsd* ]] || return 1 + +_kldunload() +{ + local cur prev words cword + _init_completion || return + + COMPREPLY=( $( kldstat | \ + sed -ne "s/^.*[ \t]\{1,\}\($cur[a-z_]\{1,\}\).ko$/\1/p" ) ) +} && +complete -F _kldunload kldunload + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/heimdal b/completions/ktutil index c1efb110..e0bd60bf 100644 --- a/completions/heimdal +++ b/completions/ktutil @@ -1,23 +1,19 @@ -# bash completion for heimdal +# ktutil completion -*- shell-script -*- -have ktutil && { _heimdal_principals() { - COMPREPLY=( $( compgen -W "$( kadmin -l dump 2>/dev/null | \ awk '{print $1}' )" -- "$cur" ) ) } _heimdal_realms() { - COMPREPLY=( $( compgen -W "( kadmin -l dump 2>/dev/null | \ awk '{print $1}' | awk -F@ '{print $2}' )" -- "$cur" ) ) } _heimdal_encodings() { - COMPREPLY=( $( compgen -W 'des-cbc-mcrc des-cbc-md4 des-cbc-md5 \ des3-cbc-sha1 arcfour-hmac-md5 aes128-cts-hmac-sha1-96 \ aes256-cts-hmac-sha1-96' -- "$cur" ) ) @@ -25,12 +21,10 @@ _heimdal_encodings() _ktutil() { - local cur prev command options split=false + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local command options case $prev in -p|--principal) @@ -60,15 +54,15 @@ _ktutil() commands='add change copy get list remove rename purge srvconvert \ srv2keytab srvcreate key2srvtab' - for (( i=1; i < COMP_CWORD; i++ )); do - case ${COMP_WORDS[i]} in + for (( i=1; i < cword; i++ )); do + case ${words[i]} in -k|--keytab) i=$(($i+1)) ;; -*) ;; *) - command=${COMP_WORDS[i]} + command=${words[i]} break ;; esac @@ -120,14 +114,7 @@ _ktutil() ;; esac fi -} +} && complete -F _ktutil ktutil -} -# 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/completions/larch b/completions/larch index e58374f7..f6f796b2 100644 --- a/completions/larch +++ b/completions/larch @@ -1,14 +1,12 @@ -# larch(1) completion by Alex Shinn <foof@synthcode.com> +# larch(1) completion -*- shell-script -*- +# by Alex Shinn <foof@synthcode.com> -have larch && _larch() { - local cur prev + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [[ $COMP_CWORD -eq 1 || "$prev" == -* ]]; then + if [[ $cword -eq 1 || "$prev" == -* ]]; then COMPREPLY=( $( compgen -W ' \ my-id my-default-archive register-archive whereis-archive archives \ init-tree tree-root tree-version set-tree-version inventory \ @@ -39,10 +37,4 @@ _larch() } && complete -F _larch -o default larch -# 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/completions/lastlog b/completions/lastlog new file mode 100644 index 00000000..8663afd7 --- /dev/null +++ b/completions/lastlog @@ -0,0 +1,28 @@ +# lastlog(8) completion -*- shell-script -*- + +_lastlog() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -b|--before|-h|--help|-t|--time) + return 0 + ;; + -u|--user) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi +} && +complete -F _lastlog lastlog + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/openldap b/completions/ldapsearch index e4bbba1f..6a9b7b1b 100644 --- a/completions/openldap +++ b/completions/ldapsearch @@ -1,6 +1,5 @@ -# bash completion for openldap +# bash completion for openldap -*- shell-script -*- -have ldapsearch && { _ldap_uris() { COMPREPLY=( $( compgen -W 'ldap:// ldaps://' -- "$cur" ) ) @@ -13,10 +12,8 @@ _ldap_protocols() _ldapsearch() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h) @@ -51,19 +48,15 @@ _ldapsearch() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-n -u -v -t -tt -T -F -A -C -L -LL \ - -LLL -M -MM -S -d -f -x -D -W -w -y -H -h -p -b -s -a \ - -P -e -E -l -z -O -I -Q -U -R -X -Y -Z -ZZ' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) ) fi -} +} && complete -F _ldapsearch ldapsearch _ldapaddmodify() { - local cur prev options - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h) @@ -85,22 +78,15 @@ _ldapaddmodify() esac if [[ "$cur" == -* ]]; then - options='-c -S -n -v -M -MM -d -D -W -w -y -h -H -p -P -O -I \ - -Q -U -R -x -X -Y -Z -ZZ -f' - if [[ ${COMP_WORDS[0]} == ldapmodify ]]; then - options="$options -a" - fi - COMPREPLY=( $( compgen -W "$options" -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) ) fi -} +} && complete -F _ldapaddmodify ldapadd ldapmodify _ldapdelete() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h) @@ -122,18 +108,15 @@ _ldapdelete() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-n -v -c -M -MM -d -f -D -W -w -y \ - -H -h -P -p -O -U -R -r -x -I -Q -X -Y -Z -ZZ' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) ) fi -} +} && complete -F _ldapdelete ldapdelete _ldapcompare() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h) @@ -155,18 +138,15 @@ _ldapcompare() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-n -v -z -M -MM -d -D -W -w -y \ - -H -h -P -p -O -I -Q -U -R -x -X -Y -Z -ZZ' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) ) fi -} +} && complete -F _ldapcompare ldapcompare _ldapmodrdn() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h) @@ -188,18 +168,15 @@ _ldapmodrdn() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-r -s -n -v -c -M -MM -d -D -W -w \ - -y -H -h -P -p -O -I -Q -U -R -x -X -Y -Z -ZZ -f' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -ZZ -MM' -- "$cur" ) ) fi -} +} && complete -F _ldapmodrdn ldapmodrdn _ldapwhoami() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h) @@ -221,18 +198,15 @@ _ldapwhoami() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-n -v -z -d -D -W -w -y -H -h -p -P \ - -O -I -Q -U -R -x -X -Y -Z -ZZ' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) ) fi -} +} && complete -F _ldapwhoami ldapwhoami _ldappasswd() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h) @@ -250,17 +224,9 @@ _ldappasswd() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-A -a -t -d -D -H -h -n -p -S -s -T \ - -v -W -w -y -O -I -Q -U -R -x -X -Y -Z -ZZ' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) ) fi -} +} && complete -F _ldappasswd ldappasswd -} -# 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/completions/ldapvi b/completions/ldapvi index 31e26d1c..f2d2c293 100644 --- a/completions/ldapvi +++ b/completions/ldapvi @@ -1,12 +1,9 @@ -# bash completion for ldapvi +# bash completion for ldapvi -*- shell-script -*- -have ldapvi && _ldapvi() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -h|--host) @@ -47,26 +44,9 @@ _ldapvi() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--discover --out --in --delete \ - --rename -h --host -D --user -w --password --bind \ - --bind-dialog -I --sasl-interactive --bind-dialog -O \ - --sasl-secprops -Q --sasl-quiet -R --sasl-realm -U \ - --sasl-authcid -X --sasl-authzid -Y --sasl-mech -b \ - --base -s --scope -S --sort --add -o --class --config \ - -c --continue --deleteoldrdn -a --deref -d --discover \ - -A --empty --ncoding -H --help --ldap-conf -m --may -M \ - --managedsait --noquestions -! --noninteractive -q \ - --quiet -R --read -Z --starttls --tls -v --verbose \ - --ldapsearch --ldapmodify --ldapdelete --ldapmoddn' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) fi } && complete -F _ldapvi ldapvi -# 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/completions/lftp b/completions/lftp index 1de87aec..86706002 100644 --- a/completions/lftp +++ b/completions/lftp @@ -1,12 +1,9 @@ -# bash completion for lftp +# lftp(1) completion -*- shell-script -*- -have lftp && _lftp() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -f) @@ -19,8 +16,7 @@ _lftp() esac if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '-f -c --help --version -e -u -p' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) return 0 fi @@ -30,23 +26,4 @@ _lftp() } && complete -F _lftp lftp -have lftpget && -_lftpget() -{ - COMPREPLY=() - local cur - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]] ; then - COMPREPLY=( $( compgen -W '-c -d -v' -- "$cur" ) ) - fi -} && -complete -F _lftpget lftpget - -# 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/completions/lftpget b/completions/lftpget new file mode 100644 index 00000000..88ab31f6 --- /dev/null +++ b/completions/lftpget @@ -0,0 +1,14 @@ +# lftpget(1) completion -*- shell-script -*- + +_lftpget() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]] ; then + COMPREPLY=( $( compgen -W '-c -d -v' -- "$cur" ) ) + fi +} && +complete -F _lftpget lftpget + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/lilo b/completions/lilo index ab0d9dc3..f81f049a 100644 --- a/completions/lilo +++ b/completions/lilo @@ -1,6 +1,5 @@ -# bash completion for lilo(8) +# bash completion for lilo(8) -*- shell-script -*- -have lilo && { _lilo_labels() { COMPREPLY=( $( compgen -W "$( awk -F'=' '/label/ {print $2}' \ @@ -9,10 +8,8 @@ _lilo_labels() _lilo() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -C|-i|-m|-s|-S) @@ -47,14 +44,7 @@ _lilo() COMPREPLY=( $( compgen -W '-A -b -c -C -d -f -g -i -I -l -L -m \ -M -p -P -q -r -R -s -S -t -T -u -U -v -V -w -x -z' -- "$cur" ) ) fi -} +} && complete -F _lilo lilo -} -# 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/completions/links b/completions/links index 9b7b50f0..a212fa5a 100644 --- a/completions/links +++ b/completions/links @@ -1,12 +1,9 @@ -# bash completion for links +# bash completion for links -*- shell-script -*- -have links && _links() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return case $cur in --*) @@ -34,10 +31,4 @@ _links() } && complete -F _links links -# 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/completions/lintian b/completions/lintian index e2237893..65121151 100644 --- a/completions/lintian +++ b/completions/lintian @@ -1,10 +1,7 @@ -# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- -# ex: ts=8 sw=8 noet filetype=sh -# -# bash completion for lintian(1) and lintian-info(1) +# bash completion for lintian(1) and lintian-info(1) -*- shell-script -*- -have lintian && { -_lintian_tags() { +_lintian_tags() +{ local match search tags tags=$( grep -e ^Tag /usr/share/lintian/checks/*.desc | cut -d\ -f2 ) @@ -15,17 +12,17 @@ _lintian_tags() { | cut -d: -f1 ) tags=$( echo $tags | sed -e "s/\<$item\>//g" ) done - COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$tags") ) + COMPREPLY+=( $(compgen -W "$tags") ) elif [[ "$cur" == *,* ]]; then - COMPREPLY=( ${COMPREPLY[@]} $(compgen -P "${cur%,*}," -W "$tags" -- \ - "${cur##*,}") ) + COMPREPLY+=( $(compgen -P "${cur%,*}," -W "$tags" -- "${cur##*,}") ) else - COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$tags" -- "$cur") ) + COMPREPLY+=( $(compgen -W "$tags" -- "$cur") ) fi return 0 } -_lintian_checks() { +_lintian_checks() +{ local match search todisable checks checks=$(grep -e ^Check-Script -e ^Abbrev \ @@ -41,17 +38,17 @@ _lintian_checks() { checks=$( echo $checks | sed -e "s/\<$name\>//g" ) done done - COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$checks") ) + COMPREPLY+=( $(compgen -W "$checks") ) elif [[ "$cur" == *,* ]]; then - COMPREPLY=( ${COMPREPLY[@]} $(compgen -P "${cur%,*}," -W "$checks" \ - -- "${cur##*,}") ) + COMPREPLY+=( $(compgen -P "${cur%,*}," -W "$checks" -- "${cur##*,}") ) else - COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$checks" -- "$cur") ) + COMPREPLY+=( $(compgen -W "$checks" -- "$cur") ) fi return 0 } -_lintian_infos() { +_lintian_infos() +{ local match search infos infos=$(grep -e ^Collector /usr/share/lintian/collection/*.desc \ @@ -63,32 +60,34 @@ _lintian_infos() { /usr/share/lintian/collection/*.desc | cut -d: -f1 ) infos=$( echo $infos | sed -e "s/\<$item\>//g" ) done - COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$infos") ) + COMPREPLY+=( $(compgen -W "$infos") ) elif [[ "$cur" == *,* ]]; then - COMPREPLY=( ${COMPREPLY[@]} $(compgen -P "${cur%,*}," -W "$infos" \ - -- "${cur##*,}") ) + COMPREPLY+=( $(compgen -P "${cur%,*}," -W "$infos" -- "${cur##*,}") ) else - COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$infos" -- "$cur") ) + COMPREPLY+=( $(compgen -W "$infos" -- "$cur") ) fi return 0 } -_lintian_arches() { +_lintian_arches() +{ return 0 } -_lintian() { - local cur prev action lint_actions general_opts behaviour_opts \ - configuration_opts selection_opts +_lintian() +{ + local cur prev words cword + _init_completion || return - _get_comp_words_by_ref cur prev + local action lint_actions general_opts behaviour_opts \ + configuration_opts selection_opts lint_actions="--setup-lab --remove-lab --check --check-part --tags \ --tags-from-file --ftp-master-rejects --dont-check-part \ --unpack --remove" general_opts="--help --version --print-version --verbose --debug --quiet" behaviour_opts="--info --display-info --display-experimental --pedantic \ - --display-level --suppress-tags --unpack-level \ + --display-level --suppress-tags \ --suppress-tags-from-file --no-override --show-overrides \ --color --unpack-info --md5sums --checksums --allow-root \ --fail-on-warnings --keep-lab" @@ -111,10 +110,6 @@ _lintian() { --lab|--archivedir|--dist|--root) _filedir -d ;; - -l|--unpack-level) - COMPREPLY=($(compgen -W "0 none 1 basic 2 contents" -- \ - "$cur")) - ;; --color) COMPREPLY=($(compgen -W "never always auto html" -- "$cur")) ;; @@ -156,12 +151,13 @@ _lintian() { ;; esac return 0 -} - -_lintian_info() { - local cur prev +} && +complete -F _lintian lintian - _get_comp_words_by_ref cur prev +_lintian_info() +{ + local cur prev words cword + _init_completion || return case "$prev" in -t|--tags) @@ -179,8 +175,7 @@ _lintian_info() { ;; esac return 0 -} - -complete -F _lintian lintian +} && complete -F _lintian_info lintian-info -} + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/lisp b/completions/lisp index ee43a019..941eae44 100644 --- a/completions/lisp +++ b/completions/lisp @@ -1,13 +1,11 @@ +# -*- shell-script -*- # bash programmable completion for various Common Lisp implementations by # Nikodemus Siivola <nikodemus@random-state.net> -have lisp && _lisp() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return # completing an option (may or may not be separated by a space) if [[ "$cur" == -* ]]; then @@ -22,10 +20,4 @@ _lisp() } && complete -F _lisp -o default lisp -# 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/completions/list_admins b/completions/list_admins new file mode 100644 index 00000000..6c05a7d3 --- /dev/null +++ b/completions/list_admins @@ -0,0 +1,17 @@ +# mailman list_admins completion -*- shell-script -*- + +_list_admins() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--all-vhost --all --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _list_admins list_admins + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/list_lists b/completions/list_lists new file mode 100644 index 00000000..8ef2156a --- /dev/null +++ b/completions/list_lists @@ -0,0 +1,21 @@ +# mailman list_lists completion -*- shell-script -*- + +_mailman_lists() +{ + COMPREPLY=( $( compgen -W '$( list_lists -b 2>/dev/null )' -- "$cur" ) ) +} + +_list_lists() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--advertised --virtual-host-overview \ + --bare --help' -- "$cur" ) ) + fi + +} && +complete -F _list_lists list_lists + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/list_members b/completions/list_members new file mode 100644 index 00000000..b6262b7c --- /dev/null +++ b/completions/list_members @@ -0,0 +1,36 @@ +# mailman list_members completion -*- shell-script -*- + +_list_members() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -o|--output) + _filedir + return 0 + ;; + -d|--digest) + COMPREPLY=( $( compgen -W 'mime plain' -- "$cur") ) + return 0 + ;; + -n|--nomail) + COMPREPLY=( $( compgen -W 'byadmin byuser bybounce unknown' \ + -- "$cur") ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--output --regular --digest \ + --nomail --fullnames --preserve --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _list_members list_members + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/list_owners b/completions/list_owners new file mode 100644 index 00000000..e4d67505 --- /dev/null +++ b/completions/list_owners @@ -0,0 +1,18 @@ +# mailman list_owners completion -*- shell-script -*- + +_list_owners() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--with-listnames --moderators \ + --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _list_owners list_owners + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/look b/completions/look new file mode 100644 index 00000000..df914452 --- /dev/null +++ b/completions/look @@ -0,0 +1,14 @@ +# look(1) completion -*- shell-script -*- + +_look() +{ + local cur prev words cword + _init_completion || return + + if [[ $cword -eq 1 ]]; then + COMPREPLY=( $( compgen -W '$(look "$cur" 2>/dev/null)' -- "$cur" ) ) + fi +} && +complete -F _look -o default look + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/lpq b/completions/lpq new file mode 100644 index 00000000..d667713e --- /dev/null +++ b/completions/lpq @@ -0,0 +1,28 @@ +# lpq(1) completion -*- shell-script -*- + +_lpq() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -P) + COMPREPLY=( $( compgen -W "$( lpstat -a 2>/dev/null | cut -d' ' -f1 )" -- "$cur" ) ) + return 0 + ;; + -U) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + esac + + if [[ "$cur" == - ]]; then + COMPREPLY=( $( compgen -W '-E -P -U -a -h -l' -- "$cur" ) ) + return 0 + fi + + _filedir +} && +complete -F _lpq lpq + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/lpr b/completions/lpr new file mode 100644 index 00000000..35ddd625 --- /dev/null +++ b/completions/lpr @@ -0,0 +1,33 @@ +# lpr(1) completion -*- shell-script -*- + +_lpr() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -P) + COMPREPLY=( $( compgen -W "$( lpstat -a 2>/dev/null | cut -d' ' -f1 )" -- "$cur" ) ) + return 0 + ;; + -U) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + -o) + COMPREPLY=( $( compgen -W "media= landscape orientation-requested= sides= fitplot number-up= scaling= cpi= lpi= page-bottom= page-top= page-left= page-right=" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + ;; + esac + + if [[ "$cur" == - ]]; then + COMPREPLY=( $( compgen -W '-E -H -C -J -T -P -U -h -l -m -o -p -q -r' -- "$cur" ) ) + return 0 + fi + + _filedir +} && +complete -F _lpr lpr + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/lrzip b/completions/lrzip index 5cde88a8..1569dab4 100644 --- a/completions/lrzip +++ b/completions/lrzip @@ -1,22 +1,14 @@ -# lrzip(1) completion +# lrzip(1) completion -*- shell-script -*- -have lrzip && _lrzip() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev - - if [[ "$cur" == -* && $prev != -N ]]; then - COMPREPLY=( $( compgen -W '-w -d -o -O -S -f -D -q -L -n -l -b -g -M \ - -T -N -v -vv -V -h' -- "$cur" ) ) - return 0 - fi + local cur prev words cword + _init_completion || return local xspec="*.lrz" case $prev in - -w|-S|-V|-h) + -w|-S|-V|-h|-'?') return 0 ;; -d) @@ -31,34 +23,38 @@ _lrzip() return 0 ;; -L) - COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{1..9}' -- "$cur" ) ) return 0 ;; -T) - COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9 10' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{1..10}' -- "$cur" ) ) return 0 ;; -N) - COMPREPLY=( $( compgen -W '-20 -19 -18 -17 -16 -15 -14 -13 -12 \ - -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 \ - 12 13 14 15 16 17 18 19' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{-20..19}' -- "$cur" ) ) + return 0 + ;; + -p) + local var=NPROCESSORS_ONLN + [[ $OSTYPE == *linux* ]] && var=_$var + local n=$( getconf $var 2>/dev/null ) + COMPREPLY=( $( compgen -W "{1..${n:-1}}" -- "$cur" ) ) return 0 ;; esac _expand || return 0 + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + local IFS=$'\n' - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ $( compgen -d -- "$cur" ) ) } && complete -F _lrzip lrzip -# 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/completions/lsof b/completions/lsof index ac010dad..6ff7786c 100644 --- a/completions/lsof +++ b/completions/lsof @@ -1,11 +1,9 @@ -# lsof(8) completion +# lsof(8) completion -*- shell-script -*- -have lsof && _lsof() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -'?'|-h|+c|-c|-d|-F|-i|+r|-r|-s|-S|-T) @@ -55,10 +53,4 @@ _lsof() } && complete -F _lsof lsof -# 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/completions/lvm b/completions/lvm index f4d3b77d..7b353114 100644 --- a/completions/lvm +++ b/completions/lvm @@ -1,6 +1,5 @@ -# bash completion for lvm +# bash completion for lvm -*- shell-script -*- -have lvm && { _volumegroups() { COMPREPLY=( $(compgen -W "$( vgscan 2>/dev/null | \ @@ -32,13 +31,13 @@ _sizes() _args() { args=0 - if [[ "${COMP_WORDS[0]}" == lvm ]]; then + if [[ "${words[0]}" == lvm ]]; then offset=2 else offset=1 fi - for (( i=$offset; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" != -* ]]; then + for (( i=$offset; i < cword; i++ )); do + if [[ "${words[i]}" != -* ]]; then args=$(($args + 1)) fi done @@ -46,39 +45,32 @@ _args() _lvmdiskscan() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --help \ - --lvmpartition --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) fi -} +} && complete -F _lvmdiskscan lvmdiskscan _pvscan() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--debug --exported --novolumegroup \ --help --ignorelockingfailure --partial --short --uuid \ --verbose --version' -- "$cur" ) ) fi -} +} && complete -F _pvscan pvscan _pvs() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -o|-O|--options|--sort) @@ -95,22 +87,17 @@ _pvs() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--aligned --all --debug \ - --help --ignorelockingfailure --noheadings \ - --nosuffix --options --sort --separator --unbuffered --units \ - --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi -} +} && complete -F _pvs pvs _pvdisplay() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --units) @@ -120,20 +107,17 @@ _pvdisplay() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--colon --columns --units \ - --verbose --debug --help --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi -} +} && complete -F _pvdisplay pvdisplay _pvchange() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|-x|--autobackup|--allocatable) @@ -143,22 +127,17 @@ _pvchange() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --autobackup \ - --debug --help --test --uuid \ - --allocatable --verbose --addtag --deltag \ - --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi -} +} && complete -F _pvchange pvchange _pvcreate() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --restorefile) @@ -180,23 +159,17 @@ _pvcreate() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--restorefile --debug \ - --force --help --labelsector --metadatatype \ - --metadatacopies --metadatasize \ - --setphysicalvolumesize --test --uuid \ - --verbose --yes --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi -} +} && complete -F _pvcreate pvcreate _pvmove() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -215,46 +188,37 @@ _pvmove() else _physicalvolumes fi -} +} && complete -F _pvmove pvmove _pvremove() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --force \ - --help --yes --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi -} +} && complete -F _pvremove pvremove _vgscan() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --help \ - --ignorelockingfailure --mknodes \ - --partial --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) fi -} +} && complete -F _vgscan vgscan _vgs() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -o|-O|--options|--sort) @@ -272,23 +236,17 @@ _vgs() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--aligned --debug \ - --help --ignorelockingfailure --noheadings \ - --nosuffix --options --sort --partial \ - --separator --unbuffered --units \ - --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgs vgs _vgdisplay() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --units) @@ -298,21 +256,17 @@ _vgdisplay() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--colon --columns --units \ - --partial --activevolumegroups --verbose \ - --debug --help --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgdisplay vgdisplay _vgchange() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -a|-A|-x|--available|--autobackup|--resizeable) @@ -330,15 +284,13 @@ _vgchange() else _volumegroups fi -} +} && complete -F _vgchange vgchange _vgcreate() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -368,31 +320,26 @@ _vgcreate() _physicalvolumes fi fi -} +} && complete -F _vgcreate vgcreate _vgremove() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --help --test \ - --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgremove vgremove _vgrename() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -402,20 +349,17 @@ _vgrename() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --debug \ - --help --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgrename vgrename _vgreduce() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -425,9 +369,7 @@ _vgreduce() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --autobackup \ - --debug --help --removemissing --test \ - --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args @@ -437,15 +379,13 @@ _vgreduce() _physicalvolumes fi fi -} +} && complete -F _vgreduce vgreduce _vgextend() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -459,8 +399,7 @@ _vgextend() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --debug \ - --help --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then @@ -469,47 +408,39 @@ _vgextend() _physicalvolumes fi fi -} +} && complete -F _vgextend vgextend _vgport() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --debug \ - --help --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgport vgimport vgexport _vgck() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug \ - --help --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgck vgck _vgconvert() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -M|--metadatatype) @@ -527,21 +458,17 @@ _vgconvert() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --help --labelsector \ - --metadatatype --metadatacopies --metadatasize \ - --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgconvert vgconvert _vgcfgbackup() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -f|--file) @@ -551,21 +478,17 @@ _vgcfgbackup() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --file --help \ - --ignorelockingfailure --partial --verbose \ - --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgcfgbackup vgcfgbackup _vgcfgrestore() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -f|--file) @@ -583,21 +506,17 @@ _vgcfgrestore() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --file --list \ - --help --metadatatype --name --test \ - --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgcfgrestore vgcfgrestore _vgmerge() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -607,20 +526,17 @@ _vgmerge() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --debug --help \ - --list --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgmerge vgmerge _vgsplit() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -645,46 +561,37 @@ _vgsplit() _physicalvolumes fi fi -} +} && complete -F _vgsplit vgsplit _vgmknodes() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--debug --help --verbose \ - --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi -} +} && complete -F _vgmknodes vgmknodes _lvscan() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--blockdevice --debug \ - --help --ignorelockingfailure \ - --partial --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) fi -} +} && complete -F _lvscan lvscan _lvs() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -o|-O|--options|--sort) @@ -700,22 +607,17 @@ _lvs() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--aligned --debug --help \ - --ignorelockingfailure --noheadings --nosuffix --options \ - --sort --partial --segments --separator --unbuffered --units \ - --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi -} +} && complete -F _lvs lvs _lvdisplay() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --units) @@ -725,20 +627,17 @@ _lvdisplay() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--colon --columns --units \ - --partial --maps --verbose --debug --help --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi -} +} && complete -F _lvdisplay lvdisplay _lvchange() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -a|-A|-C|-M|--available|--autobackup|--continguous|--persistent) @@ -752,24 +651,17 @@ _lvchange() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --available \ - --addtag --alloc --contiguous --debug --deltag \ - --force --help --ignorelockingfailure \ - --persistent --major --minor --partial \ - --permission --readahead --refresh --test \ - --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi -} +} && complete -F _lvchange lvchange _lvcreate() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|-C|-M|-Z|--autobackup|--continguous|--persistent|--zero) @@ -791,12 +683,7 @@ _lvcreate() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --addtag --alloc \ - --contiguous --debug --help --stripes \ - --stripesize --extents --size --persistent \ - --major --minor --name --permission \ - --readahead --test --type --verbose --zero \ - --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then @@ -805,15 +692,13 @@ _lvcreate() _physicalvolumes fi fi -} +} && complete -F _lvcreate lvcreate _lvremove() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -823,20 +708,17 @@ _lvremove() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --debug \ - --force --help --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi -} +} && complete -F _lvremove lvremove _lvrename() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -846,20 +728,17 @@ _lvrename() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --debug \ - --help --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi -} +} && complete -F _lvrename lvrename _lvreduce() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -873,21 +752,17 @@ _lvreduce() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup \ - --debug --force --help --extents \ - --size --nofsck --resizefs --test --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi -} +} && complete -F _lvreduce lvreduce _lvresize() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -901,10 +776,7 @@ _lvresize() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --alloc \ - --debug --help --stripes --stripesize \ - --extents --size --nofsck --resizefs \ - --test --type --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then @@ -913,15 +785,13 @@ _lvresize() _physicalvolumes fi fi -} +} && complete -F _lvresize lvresize _lvextend() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -A|--autobackup) @@ -935,10 +805,7 @@ _lvextend() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--autobackup --alloc \ - --debug --help --stripes --stripesize \ - --extents --size --nofsck --resizefs \ - --test --type --verbose --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then @@ -947,17 +814,15 @@ _lvextend() _physicalvolumes fi fi -} +} && complete -F _lvextend lvextend _lvm() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W 'dumpconfig help lvchange \ lvcreate lvdisplay lvextend lvmchange \ lvmdiskscan lvmsadc lvmsar lvreduce \ @@ -970,7 +835,7 @@ _lvm() vgremove vgrename vgs vgscan vgsplit \ version' -- "$cur" ) ) else - case ${COMP_WORDS[1]} in + case ${words[1]} in pvchange) _pvchange ;; @@ -1081,14 +946,7 @@ _lvm() ;; esac fi -} +} && complete -F _lvm lvm -} -# 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/completions/lzma b/completions/lzma index 295ef37b..d377d15f 100644 --- a/completions/lzma +++ b/completions/lzma @@ -1,12 +1,10 @@ -# lzma(1) completion by Per Øyvind Karlsen <peroyvind@mandriva.org> +# lzma(1) completion -*- shell-script -*- +# by Per Øyvind Karlsen <peroyvind@mandriva.org> -have lzma && _lzma() { - local cur prev xspec - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-1 -2 -3 -4 -5 -6 -7 -8 -9 \ @@ -16,9 +14,8 @@ _lzma() return 0 fi - local IFS=$'\n' + local IFS=$'\n' xspec="*.@(lzma|tlz)" - xspec="*.@(lzma|tlz)" if [[ "$prev" == --* ]]; then [[ "$prev" == --decompress || \ "$prev" == --list || \ @@ -31,16 +28,10 @@ _lzma() _expand || return 0 - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ $( compgen -d -- "$cur" ) ) } && complete -F _lzma lzma -# 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/completions/lzop b/completions/lzop index 6d384128..a5084bb0 100644 --- a/completions/lzop +++ b/completions/lzop @@ -1,23 +1,9 @@ -# lzop(1) completion +# lzop(1) completion -*- shell-script -*- -have lzop && _lzop() { - local cur prev xspec - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-1 -2 -3 -4 -5 -6 -7 -8 -9 -P \ - --fast --best --decompress --extract --test --list --ls --info \ - --sysinfo --license --help --version --stdout --output --path \ - --force --no-checksum --no-name --name --no-mode --no-time \ - --suffix --keep --delete --crc32 --no-warn --ignore-warn --quiet \ - --verbose --no-stdin --filter --checksum --no-color --mono \ - --color' -- "$cur" ) ) - return 0 - fi + local cur prev words cword + _init_completion || return case $prev in -o|--output) @@ -33,7 +19,18 @@ _lzop() ;; esac - xspec="*.?(t)lzo" + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-1 -2 -3 -4 -5 -6 -7 -8 -9 -P \ + --fast --best --decompress --extract --test --list --ls --info \ + --sysinfo --license --help --version --stdout --output --path \ + --force --no-checksum --no-name --name --no-mode --no-time \ + --suffix --keep --delete --crc32 --no-warn --ignore-warn --quiet \ + --verbose --no-stdin --filter --checksum --no-color --mono \ + --color' -- "$cur" ) ) + return 0 + fi + + local xspec="*.?(t)lzo" case $prev in --decompress|--uncompress|--extract|--list|--ls|--info|--test) xspec="!"$xspec @@ -43,7 +40,7 @@ _lzop() ;; --*) ;; - -*f*|'<'|'>') + -*f*) xspec= ;; -*[dltx]*) @@ -54,16 +51,10 @@ _lzop() _expand || return 0 local IFS=$'\n' - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ $( compgen -d -- "$cur" ) ) } && complete -F _lzop lzop -# 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/completions/macof b/completions/macof new file mode 100644 index 00000000..b81b630a --- /dev/null +++ b/completions/macof @@ -0,0 +1,23 @@ +# macof completion -*- shell-script -*- + +_macof() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _interfaces + return 0 + ;; + esac + + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi + +} && +complete -F _macof macof + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/mailman b/completions/mailman deleted file mode 100644 index b239cbbf..00000000 --- a/completions/mailman +++ /dev/null @@ -1,587 +0,0 @@ -# mailman completion - -have list_lists && { -_mailman_lists() -{ - COMPREPLY=( $( compgen -W '$( list_lists -b )' -- "$cur" ) ) -} - -_list_lists() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--advertised --virtual-host-overview \ - --bare --help' -- "$cur" ) ) - fi - -} && -complete -F _list_lists list_lists -} - -have add_members && -_add_members() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -r|-d|--regular-members-file|--digest-members-file) - _filedir - return 0 - ;; - -w|-a|--welcome-msg|--admin-notify) - COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--regular-members-file \ - --digest-members-file --welcome-msg \ - --admin-notify --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _add_members add_members - -have remove_members && -_remove_members() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -f|--file) - _filedir - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--file --all --fromall --nouserack \ - --noadminack --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _remove_members remove_members - -have find_member && -_find_member() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -l|-x|--listname|--exclude) - _mailman_lists - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--listname --exclude --owners \ - --help' -- "$cur" ) ) - fi - -} && -complete -F _find_member find_member - -have clone_member && -_clone_member() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -l|--listname) - _mailman_lists - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--listname --remove --admin \ - --quiet --nomodify --help' -- "$cur" ) ) - fi - -} && -complete -F _clone_member clone_member - -have sync_members && -_sync_members() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -w|-g|-d|--welcome-msg|--goodbye-msg|--digest) - COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) - return 0 - ;; - -d|--file) - _filedir - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--no-change --welcome-msg \ - --goodbye-msg --digest --notifyadmin --file --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _sync_members sync_members - -have unshunt && -_unshunt() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help' -- "$cur" ) ) - else - _filedir -d - fi - -} && -complete -F _unshunt unshunt - -have list_admins && -_list_admins() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all-vhost --all --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _list_admins list_admins - -have list_owners && -_list_owners() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--with-listnames --moderators \ - --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _list_owners list_owners - -have list_members && -_list_members() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -o|--output) - _filedir - return 0 - ;; - -d|--digest) - COMPREPLY=( $( compgen -W 'mime plain' -- "$cur") ) - return 0 - ;; - -n|--nomail) - COMPREPLY=( $( compgen -W 'byadmin byuser bybounce unknown' \ - -- "$cur") ) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--output --regular --digest \ - --nomail --fullnames --preserve --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _list_members list_members - -have change_pw && -_change_pw() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -l|--listname) - _mailman_lists - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --domain --listname \ - --password --quiet --help' -- "$cur" ) ) - fi - -} && -complete -F _change_pw change_pw - -have withlist && -_withlist() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--lock --interactive \ - --run --all --quiet --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _withlist withlist - -have newlist && -_newlist() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--language --quiet --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _newlist newlist - -have rmlist && -_rmlist() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--archives --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _rmlist rmlist - -have config_list && -_config_list() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -i|-o|--inputfile|--outputfile) - _filedir - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--inputfile --outputfile \ - --checkonly --verbose --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _config_list config_list - -# Try to detect whether this is the mailman "arch" to avoid installing -# it for the coreutils/util-linux-ng one. -have arch && have mailmanctl && -_arch() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -w|-g|-d|--welcome-msg|--goodbye-msg|--digest) - COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) - return 0 - ;; - -d|--file) - _filedir - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--wipe --start --end --quiet \ - --help' -- "$cur" ) ) - else - args=$COMP_CWORD - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -* ]]; then - args=$(($args-1)) - fi - done - case $args in - 1) - _mailman_lists - ;; - 2) - _filedir - ;; - esac - fi - -} && -complete -F _arch arch - -have cleanarch && -_cleanarch() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--status --dry-run --quiet \ - --help' -- "$cur" ) ) - fi - -} && -complete -F _cleanarch cleanarch - -have inject && -_inject() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -l|--listname) - _mailman_lists - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--listname --queue --help' -- "$cur" ) ) - else - _filedir - fi - -} && -complete -F _inject inject - -have dumpdb && -_dumpdb() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--marshal --pickle --noprint \ - --help' -- "$cur" ) ) - else - _filedir - fi - -} && -complete -F _dumpdb dumpdb - -have check_db && -_check_db() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --verbose --help' -- "$cur" ) ) - else - _mailman_lists - fi - -} && -complete -F _check_db check_db - -have check_perms && -_check_perms() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-f -v -h' -- "$cur" ) ) - fi - -} && -complete -F _check_perms check_perms - -have genaliases && -_genaliases() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--quiet --help' -- "$cur" ) ) - fi - -} && -complete -F _genaliases genaliases - -have mmsitepass && -_mmsitepass() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--listcreator --help' -- "$cur" ) ) - fi - -} && -complete -F _mmsitepass mmsitepass - -have qrunner && -_qrunner() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--runner --once \ - --list --verbose --subproc --help' -- "$cur" ) ) - fi - -} && -complete -F _qrunner qrunner - -have mailmanctl && -_mailmanctl() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--no-restart --run-as-user \ - --stale-lock-cleanup --quiet --help' -- "$cur" ) ) - else - COMPREPLY=( $( compgen -W 'start stop restart reopen' -- "$cur" ) ) - fi - -} && -complete -F _mailmanctl mailmanctl - -# 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/completions/mailmanctl b/completions/mailmanctl new file mode 100644 index 00000000..4a49668f --- /dev/null +++ b/completions/mailmanctl @@ -0,0 +1,18 @@ +# mailmanctl completion -*- shell-script -*- + +_mailmanctl() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--no-restart --run-as-user \ + --stale-lock-cleanup --quiet --help' -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W 'start stop restart reopen' -- "$cur" ) ) + fi + +} && +complete -F _mailmanctl mailmanctl + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/make b/completions/make index 76e95284..d56e1962 100644 --- a/completions/make +++ b/completions/make @@ -1,58 +1,55 @@ -# bash completion for GNU make +# bash completion for GNU make -*- shell-script -*- -have make || have gmake || have gnumake || have pmake && _make() { - local file makef makef_dir="." makef_inc cur prev i split=false + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local file makef makef_dir="." makef_inc i case $prev in - -f|-o|-W|--file|--makefile|--old-file|--new-file|--assume-old|--assume-new|--what-if) + -f|--file|--makefile|-o|--old-file|--assume-old|-W|--what-if|\ + --new-file|--assume-new) _filedir return 0 ;; - -I|-C|--directory|--include-dir) + -I|--include-dir|-C|--directory|-m) _filedir -d return 0 ;; + -E) + COMPREPLY=( $( compgen -v -- "$cur" ) ) + return 0 + ;; + --eval|-D|-V|-x) + return 0 + ;; esac $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-b -m -B -C -d -e -f -h -i -I\ - -j -l -k -n -o -p -q -r -R - s -S -t -v -w -W \ - --always-make --directory --debug \ - --environment-overrides --file --makefile --help \ - --ignore-errors --include-dir --jobs --load-average \ - --max-load --keep-going --just-print --dry-run \ - --recon --old-file --assume-old --print-data-base \ - --question --no-builtin-rules --no-builtin-variables \ - --silent --quiet --no-keep-goind --stop --touch \ - --version --print-directory --no-print-directory \ - --what-if --new-file --assume-new \ - --warn-undefined-variables' -- "$cur" ) ) + local opts="$( _parse_help "$1" )" + [[ $opts ]] || opts="$( _parse_usage "$1" )" + COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else # before we check for makefiles, see if a path was specified # with -C/--directory - for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do - if [[ ${COMP_WORDS[i]} == -@(C|-directory) ]]; then + for (( i=0; i < ${#words[@]}; i++ )); do + if [[ ${words[i]} == -@(C|-directory) ]]; then # eval for tilde expansion - eval makef_dir=${COMP_WORDS[i+1]} + eval makef_dir=${words[i+1]} break fi done # before we scan for targets, see if a Makefile name was # specified with -f/--file/--makefile - for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do - if [[ ${COMP_WORDS[i]} == -@(f|-?(make)file) ]]; then + for (( i=0; i < ${#words[@]}; i++ )); do + if [[ ${words[i]} == -@(f|-?(make)file) ]]; then # eval for tilde expansion - eval makef=${COMP_WORDS[i+1]} + eval makef=${words[i+1]} break fi done @@ -69,10 +66,4 @@ _make() } && complete -F _make make gmake gnumake pmake -# 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/completions/makepkg b/completions/makepkg new file mode 100644 index 00000000..c24c9cc4 --- /dev/null +++ b/completions/makepkg @@ -0,0 +1,24 @@ +# Slackware Linux makepkg completion -*- shell-script -*- + +_makepkg() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + -l|--linkadd|-c|--chown) + COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-l --linkadd -p --prepend \ + -c --chown' -- "$cur") ) + return 0 + fi + + _filedir +} && complete -F _makepkg makepkg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/man b/completions/man index 9e5cd3a8..5c134d33 100644 --- a/completions/man +++ b/completions/man @@ -1,27 +1,57 @@ -# man(1) completion +# man(1) completion -*- shell-script -*- + +[[ $OSTYPE == *@(darwin|freebsd|solaris|cygwin|openbsd)* ]] || _userland GNU \ + || return 1 -[ $USERLAND = GNU -o $UNAME = Darwin \ - -o $UNAME = FreeBSD -o $UNAME = SunOS -o $UNAME = Cygwin \ - -o $UNAME = OpenBSD ] && _man() { - local cur i prev sect manpath manext mansect uname + local cur prev words cword split + _init_completion -s -n : || return + + local i sect manpath manext mansect uname manext="@([0-9lnp]|[0-9][px]|man|3pm)?(.@([gx]z|bz2|lzma|Z))" mansect="@([0-9lnp]|[0-9][px]|3pm)" - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev + case $prev in + -C|--config-file) + _filedir conf + return + ;; + -l|--local-file) + _filedir $manext + return + ;; + -M|--manpath) + _filedir -d + return + ;; + -P|--pager) + COMPREPLY=( $( compgen -c -- "$cur" ) ) + return + ;; + -p|--preprocessor) + COMPREPLY=( $( compgen -W 'e p t g r v' -- "$cur" ) ) + return + ;; + -L|--locale|-m|--systems|-e|--extension|-r|--prompt|-R|--recode|\ + -E|--encoding) + return + ;; + esac - if [[ "$prev" == -l ]]; then - _filedir $manext - return 0 + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return fi _expand || return 0 - # file based completion if parameter contains / - if [[ "$cur" == */* ]]; then + # file based completion if parameter looks like a path + if [[ "$cur" == @(*/|[.~])* ]]; then _filedir $manext return 0 fi @@ -71,10 +101,4 @@ _man() } && complete -F _man man apropos whatis -# 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/completions/mc b/completions/mc index 09e9eabe..f3065793 100644 --- a/completions/mc +++ b/completions/mc @@ -1,14 +1,9 @@ -# bash completion for mc +# bash completion for mc -*- shell-script -*- -have mc && _mc() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -e|--edit|-v|--view|-l|--ftplog|-P|--printwd) @@ -19,7 +14,7 @@ _mc() # argument required but no completions available return 0 ;; - -h|--help|-V|--version) + -h|--help|--help-*|-V|--version) # all other arguments are noop with these return 0 ;; @@ -28,20 +23,13 @@ _mc() $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--stickchars --nocolor --color --colors \ - --nomouse --edit --datadir --resetsoft --ftplog --printwd --slow \ - --termcap --nosubshell --subshell --view --version --xterm \ - --debuglevel --help' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help-all )' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else _filedir -d fi } && complete -F _mc mc -# 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/completions/mcrypt b/completions/mcrypt index 32c4f89f..8c7d189c 100644 --- a/completions/mcrypt +++ b/completions/mcrypt @@ -1,16 +1,14 @@ -# mcrypt(1) completion by Ariel Fermani <the_end@bbs.frc.utn.edu.ar> +# mcrypt(1) completion -*- shell-script -*- +# by Ariel Fermani <the_end@bbs.frc.utn.edu.ar> -have mcrypt || have mdecrypt && _mcrypt() { - local cur prev i decrypt - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -g|--openpgp-z) - COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{0..9}' -- "$cur" ) ) return 0 ;; -o|--keymode) @@ -48,21 +46,13 @@ _mcrypt() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--openpgp --openpgp-z \ - --decrypt --keysize --keymode --keyfile \ - --config --algorithm --algorithms-directory \ - --mode --modes-directory --hash --key \ - --noiv --bare --gzip --bzip2 --flush \ - --doublecheck --unlink --nodelete --time \ - --force --echo --random --list --list-keymodes \ - --list-hash --verbose --quiet --help \ - --version --license' -- "$cur" ) ) - elif [[ ${COMP_WORDS[0]} == mdecrypt ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + elif [[ ${words[0]} == mdecrypt ]]; then _filedir nc else - decrypt=0 - for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == -@(d|-decrypt) ]]; then + local i decrypt=0 + for (( i=1; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == -@(d|-decrypt) ]]; then _filedir nc decrypt=1 break @@ -75,10 +65,4 @@ _mcrypt() } && complete -F _mcrypt mcrypt mdecrypt -# 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/completions/mdadm b/completions/mdadm index 9cbaad7b..f0e917fd 100644 --- a/completions/mdadm +++ b/completions/mdadm @@ -1,13 +1,11 @@ -# bash completion for mdadm +# bash completion for mdadm -*- shell-script -*- -have mdadm && -{ _mdadm_raid_level() { local mode - for (( i=1; i < COMP_CWORD; i++ )); do - case ${COMP_WORDS[i]} in + for (( i=1; i < cword; i++ )); do + case ${words[i]} in -C|--create) mode=create break @@ -35,9 +33,9 @@ _mdadm_raid_level() _mdadm_raid_layout() { local level - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -@(l|-level) ]]; then - level=${COMP_WORDS[i+1]} + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -@(l|-level) ]]; then + level=${words[i+1]} break fi done @@ -72,12 +70,8 @@ _mdadm_update_flag() _mdadm() { - local cur prev mode options split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -c|--config|-b|--bitmap|--backup-file) @@ -104,28 +98,29 @@ _mdadm() $split && return 0 + local options options='--help --help-options --version --verbose --quiet \ - --brief --force --config --scan --metadata --homehost' + --brief --force --config= --scan --metadata= --homehost=' if [[ "$cur" == -* ]]; then - if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ $cword -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$options --assemble --build \ --create --monitor --grow" -- "$cur" ) ) else - case ${COMP_WORDS[COMP_CWORD-1]} in + case ${words[cword-1]} in -A|--assemble) - COMPREPLY=( $( compgen -W "$options --uuid \ - --super-minor --name --force --run \ - --no-degraded --auto --bitmap --backup-file \ - --update --auto-update-homehost" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$options --uuid= \ + --super-minor= --name= --force --run \ + --no-degraded --auto= --bitmap= --backup-file= \ + --update= --auto-update-homehost" -- "$cur" ) ) ;; -B|-C|-G|--build|--create|--grow) - COMPREPLY=( $( compgen -W "$options --raid-devices \ - --spare-devices --size --chunk --rounding \ - --level --layout --parity --bitmap \ - --bitmap-chunk --write-mostly --write-behind \ - --assume-clean --backup-file --name --run \ - --force --auto" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$options --raid-devices= \ + --spare-devices= --size= --chunk= --rounding= \ + --level= --layout= --parity= --bitmap= \ + --bitmap-chunk= --write-mostly --write-behind= \ + --assume-clean --backup-file= --name= --run \ + --force --auto=" -- "$cur" ) ) ;; -F|--follow|--monitor) COMPREPLY=( $( compgen -W "$options --mail --program \ @@ -145,18 +140,12 @@ _mdadm() ;; esac fi + [[ $COMPREPLY == *= ]] && compopt -o nospace else cur=${cur:=/dev/} _filedir fi -} +} && complete -F _mdadm mdadm -} -# 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/completions/mdtool b/completions/mdtool new file mode 100644 index 00000000..43358865 --- /dev/null +++ b/completions/mdtool @@ -0,0 +1,62 @@ +# mdtool completion -*- shell-script -*- + +_mdtool() +{ + local cur prev words cword + _init_completion || return + + local command i + + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == @(build|generate-makefiles|setup) ]]; then + command=${words[i]} + fi + done + + if [[ -n "$command" ]]; then + case $command in + "build") + COMPREPLY=( $( compgen -W '--f --buildfile --p --project' \ + -S":" -- "$cur" ) ) + # TODO: This does not work :( + #if [[ "$prev" == *: ]]; then + # case $prev in + # @(--p:|--project:)) + # COMPREPLY=( $( compgen -f -G "*.mdp" -- "$cur" ) ) + # ;; + # @(--f:|--buildfile:)) + # COMPREPLY=( $( compgen -f -G "*.mdp" -G "*.mds" -- "$cur" ) ) + # ;; + # esac + #fi + return 0 + ;; + "generate-makefiles") + compopt -o filenames + COMPREPLY=( $( compgen -o filenames -G"*.mds" -- "$cur" ) ) + if [[ "$prev" == *mds ]]; then + COMPREPLY=( $( compgen -W '--simple-makefiles --s --d:' \ + -- "$cur" ) ) + fi + return 0 + ;; + "setup") + # TODO: at least return filenames after these options. + COMPREPLY=( $( compgen -W 'install i uninstall u check-install \ + ci update up list l list-av la list-update lu rep-add ra \ + rep-remove rr rep-update ru rep-list rl reg-update \ + reg-build rgu info rep-build rb pack p help h dump-file' \ + -- "$cur" ) ) + return 0 + ;; + esac + fi + + COMPREPLY=( $( compgen -W 'gsetup build dbgen project-export \ + generate-makefiles gettext-update setup -q' -- "$cur" ) ) + + return 0 +} && +complete -F _mdtool mdtool + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/medusa b/completions/medusa index d8dcfe41..84a03813 100644 --- a/completions/medusa +++ b/completions/medusa @@ -1,13 +1,9 @@ -# bash completion for medusa +# bash completion for medusa -*- shell-script -*- -have medusa && _medusa() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=`_get_pword` + local cur prev words cword + _init_completion || return case $prev in -h) @@ -26,16 +22,9 @@ _medusa() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-h -H -u -U -p -P -C -O -e -M -m -d -n -s \ - -g -r -R -t -T -L -f -F -b -q -v -w -V -Z' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) fi } && complete -F _medusa medusa -# 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/completions/mii-diag b/completions/mii-diag new file mode 100644 index 00000000..5e94877f --- /dev/null +++ b/completions/mii-diag @@ -0,0 +1,27 @@ +# mii-diag(8) completion -*- shell-script -*- + +_mii_diag() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -F|-A|--advertise|--fixed-speed) + COMPREPLY=( $( compgen -W '100baseT4 100baseTx \ + 100baseTx-FD 100baseTx-HD 10baseT 10baseT-FD \ + 10baseT-HD' -- "$cur" ) ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + else + _available_interfaces -a + fi +} && +complete -F _mii_diag -o default mii-diag + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/mii-tool b/completions/mii-tool new file mode 100644 index 00000000..effaa1db --- /dev/null +++ b/completions/mii-tool @@ -0,0 +1,32 @@ +# mii-tool(8) completion -*- shell-script -*- + +_mii_tool() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -F|--force) + COMPREPLY=( $( compgen -W '100baseTx-FD 100baseTx-HD \ + 10baseT-FD 10baseT-HD' -- "$cur" ) ) + return 0 + ;; + -A|--advertise) + COMPREPLY=( $( compgen -W '100baseT4 100baseTx-FD 100baseTx-HD \ + 10baseT-FD 10baseT-HD' -- "$cur" ) ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + else + _available_interfaces -a + fi +} && +complete -F _mii_tool -o default mii-tool + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/minicom b/completions/minicom index 76553317..6bac50ba 100644 --- a/completions/minicom +++ b/completions/minicom @@ -1,12 +1,9 @@ -# bash completion for minicom +# bash completion for minicom -*- shell-script -*- -have minicom && _minicom() { - local cur prev confdir - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -a|-c) @@ -31,6 +28,7 @@ _minicom() -c -S -d -p -C -T -7 -8' -- "$cur" ) ) return 0 else + local confdir [ -n "$( command ls /etc/minirc.* 2>/dev/null)" ] \ && confdir=/etc [ -n "$( command ls /etc/minicom/minirc.* 2>/dev/null)" ] \ @@ -44,10 +42,4 @@ _minicom() } && complete -F _minicom -o default minicom -# 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/completions/mkinitrd b/completions/mkinitrd index 48893471..c54f22a2 100644 --- a/completions/mkinitrd +++ b/completions/mkinitrd @@ -1,14 +1,9 @@ -# bash completion for mkinitrd +# bash completion for mkinitrd -*- shell-script -*- -have mkinitrd && _mkinitrd() { - local cur prev args split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in --preload|--with|--builtin) @@ -31,10 +26,12 @@ _mkinitrd() COMPREPLY=( $( compgen -W '--version --help -v -f --preload \ --force-scsi-probe --omit-scsi-modules \ --omit-ide-modules --image-version --force-raid-probe \ - --omit-raid-modules --with --force-lvm-probe \ + --omit-raid-modules --with= --force-lvm-probe \ --omit-lvm-modules --builtin --omit-dmraid --net-dev \ --fstab --nocompress --dsdt --bootchart' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else + local args _count_args case $args in @@ -50,10 +47,4 @@ _mkinitrd() } && complete -F _mkinitrd mkinitrd -# 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/completions/mktemp b/completions/mktemp new file mode 100644 index 00000000..3871e708 --- /dev/null +++ b/completions/mktemp @@ -0,0 +1,29 @@ +# mktemp(1) completion -*- shell-script -*- + +_mktemp() +{ + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + --help|--version|--suffix) + return 0 + ;; + --tmpdir|-p) + _filedir -d + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + local opts=$( _parse_help "$1" ) + [[ $opts ]] || opts="-d -u -q -p -t" # non-GNU fallback + COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _mktemp mktemp + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/mmsitepass b/completions/mmsitepass new file mode 100644 index 00000000..71fc8b09 --- /dev/null +++ b/completions/mmsitepass @@ -0,0 +1,15 @@ +# mailman mmsitepass completion -*- shell-script -*- + +_mmsitepass() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--listcreator --help' -- "$cur" ) ) + fi + +} && +complete -F _mmsitepass mmsitepass + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/module-init-tools b/completions/module-init-tools deleted file mode 100644 index bf2d24d1..00000000 --- a/completions/module-init-tools +++ /dev/null @@ -1,61 +0,0 @@ -# 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=() - _get_comp_words_by_ref cur - - _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=() - _get_comp_words_by_ref cur prev - - # 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 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 diff --git a/completions/monodevelop b/completions/monodevelop index 69b23445..9102b8bb 100644 --- a/completions/monodevelop +++ b/completions/monodevelop @@ -1,14 +1,15 @@ -# Monodevelop completion +# monodevelop completion -*- shell-script -*- -have monodevelop && _monodevelop() { - local cur - _get_comp_words_by_ref cur + local cur prev words cword split + _init_completion -s || return + + $split && return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-? -help -help2 -ipc-tcp -newwindow -nologo \ - -usage -V -version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else _filedir fi @@ -16,71 +17,4 @@ _monodevelop() } && complete -F _monodevelop monodevelop -have mdtool && -_mdtool() -{ - local cur prev command i - - COMPREPLY=() - - _get_comp_words_by_ref cur prev - - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == @(build|generate-makefiles|setup) ]]; then - command=${COMP_WORDS[i]} - fi - done - - if [[ -n "$command" ]]; then - case $command in - "build") - COMPREPLY=( $( compgen -W '--f --buildfile --p --project' \ - -S":" -- "$cur" ) ) - # TODO: This does not work :( - #if [[ "$prev" == *: ]]; then - # case $prev in - # @(--p:|--project:)) - # COMPREPLY=( $( compgen -f -G "*.mdp" -- "$cur" ) ) - # ;; - # @(--f:|--buildfile:)) - # COMPREPLY=( $( compgen -f -G "*.mdp" -G "*.mds" -- "$cur" ) ) - # ;; - # esac - #fi - return 0 - ;; - "generate-makefiles") - _compopt_o_filenames - COMPREPLY=( $( compgen -o filenames -G"*.mds" -- "$cur" ) ) - if [[ "$prev" == *mds ]]; then - COMPREPLY=( $( compgen -W '--simple-makefiles --s --d:' \ - -- "$cur" ) ) - fi - return 0 - ;; - "setup") - # TODO: at least return filenames after these options. - COMPREPLY=( $( compgen -W 'install i uninstall u check-install \ - ci update up list l list-av la list-update lu rep-add ra \ - rep-remove rr rep-update ru rep-list rl reg-update \ - reg-build rgu info rep-build rb pack p help h dump-file' \ - -- "$cur" ) ) - return 0 - ;; - esac - fi - - COMPREPLY=( $( compgen -W 'gsetup build dbgen project-export \ - generate-makefiles gettext-update setup -q' -- "$cur" ) ) - - return 0 -} && -complete -F _mdtool mdtool - -# 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/completions/mount b/completions/mount index b14eef3e..48bc7b03 100644 --- a/completions/mount +++ b/completions/mount @@ -1,11 +1,10 @@ -# mount(8) completion. This will pull a list of possible mounts out of +# mount(8) completion -*- shell-script -*- +# This will pull a list of possible mounts out of # /etc/{,v}fstab, unless the word being completed contains a ':', which # would indicate the specification of an NFS server. In that case, we # query the server for a list of all available exports and complete on # that instead. # -have mount && -{ # Just like COMPREPLY=(`compgen -W "${COMPREPLY[*]}" -- "$cur"`), only better! # @@ -77,10 +76,10 @@ _linux_fstab() _mount() { - local cur sm host prev + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev + local sm host case $prev in -t|--types) @@ -134,14 +133,12 @@ complete -F _mount -o default -o dirnames mount # umount(8) completion. This relies on the mount point being the third # space-delimited field in the output of mount(8) # -have umount && _umount() { - local cur - _get_comp_words_by_ref cur - COMPREPLY=() + local cur prev words cword + _init_completion || return - if [[ $(uname -s) = Linux && -r /proc/mounts ]]; then + if [[ $OSTYPE == *linux* && -r /proc/mounts ]]; then # Linux /proc/mounts is properly quoted. This is important when # unmounting usb devices with pretty names. _linux_fstab < /proc/mounts @@ -154,12 +151,4 @@ _umount() } && complete -F _umount -o dirnames umount -} - -# 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/completions/mplayer b/completions/mplayer index 39711370..cd39d309 100644 --- a/completions/mplayer +++ b/completions/mplayer @@ -1,6 +1,5 @@ -# mplayer(1) completion +# mplayer(1) completion -*- shell-script -*- -have mplayer && { _mplayer_options_list() { cur=${cur%\\} @@ -11,11 +10,10 @@ _mplayer_options_list() _mplayer() { - local cmd cur prev i j k=0 + local cur prev words cword + _init_completion || return - COMPREPLY=() - cmd=${COMP_WORDS[0]} - _get_comp_words_by_ref cur prev + local cmd=${words[0]} i j k=0 case $prev in -[av][cfo]|-[av]fm|-vop|-fstype|-demuxer|-o[av]c|-of|-profile| \ @@ -38,8 +36,7 @@ _mplayer() _filedir ttf fi local IFS=$'\n' - COMPREPLY=( "${COMPREPLY[@]}" - $( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) ) + COMPREPLY+=( $( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) ) return 0 ;; -sub) @@ -256,14 +253,7 @@ _mplayer() esac return 0 -} -complete -F _mplayer mplayer mencoder gmplayer kplayer -} +} && +complete -F _mplayer mplayer mplayer2 mencoder gmplayer kplayer -# 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/completions/msynctool b/completions/msynctool index 3f9afb7f..db48e1b7 100644 --- a/completions/msynctool +++ b/completions/msynctool @@ -1,14 +1,11 @@ -# bash completion for msynctool +# bash completion for msynctool -*- shell-script -*- -have msynctool && _msynctool() { - local cur prev anteprev + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev anteprev - - case $anteprev in + case $words in --configure) COMPREPLY=( $( compgen -W "$(msynctool --showgroup \ $prev | awk '/^Member/ {print $2}' | sed \ @@ -42,10 +39,4 @@ _msynctool() } && complete -F _msynctool msynctool -# 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/completions/mtx b/completions/mtx index 0454f032..0dae92ae 100644 --- a/completions/mtx +++ b/completions/mtx @@ -1,26 +1,26 @@ -# mtx completion by Jon Middleton <jjm@ixtab.org.uk> +# mtx completion -*- shell-script -*- +# by Jon Middleton <jjm@ixtab.org.uk> -have mtx && _mtx() { - local cur prev options tapes drives + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev + local options tapes drives options="-f nobarcode invert noattach --version inquiry noattach \ inventory status load unload eepos first last next" - tapes=$(mtx status | \ + tapes=$(mtx status 2>/dev/null | \ awk '/Storage Element [0-9]+:Full/ { printf "%s ", $3 }') tapes=${tapes//:Full} - drives=$(mtx status | \ + drives=$(mtx status 2>/dev/null | \ awk '/Data Transfer Element [0-9]+:(Full|Empty)/ { printf "%s ", $4 }') drives=${drives//:Full} drives=${drives//:Empty} - if [ $COMP_CWORD -gt 1 ]; then + if [ $cword -gt 1 ]; then case $prev in load) COMPREPLY=( $( compgen -W "$tapes" -- "$cur" ) ) @@ -42,10 +42,4 @@ _mtx() } && complete -F _mtx mtx -# 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/completions/munin-node b/completions/munin-node deleted file mode 100644 index abf2b0f6..00000000 --- a/completions/munin-node +++ /dev/null @@ -1,113 +0,0 @@ -# bash completion for munin node - -have munin-run && -_munin_run() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - --config|--sconffile) - _filedir - return 0 - ;; - --servicedir|--sconfdir) - _filedir -d - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--config --servicedir --sconfdir \ - --sconffile --help --debug --version' -- "$cur" ) ) - else - COMPREPLY=( $( compgen -W '$( command ls /etc/munin/plugins )' \ - -- "$cur" ) ) - fi -} && -complete -F _munin_run munin-run - -have munindoc && -_munindoc() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - COMPREPLY=( $( compgen -W '$( command ls /usr/share/munin/plugins )' \ - -- "$cur" ) ) -} && -complete -F _munindoc munindoc - -have munin-update && -_munin_update() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - --config) - _filedir - return 0 - ;; - --host) - _known_hosts_real "$cur" - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--force-root --[no]force-root \ - --service --host --config --help --debug --nodebug \ - --fork --nofork --stdout --nostdout --timeout' -- "$cur" ) ) - fi -} && -complete -F _munin_update munin-update - -have munin-node-configure && -_munin_node_configure() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - --config) - _filedir - return 0 - ;; - --servicedir|--libdir) - _filedir -d - return 0 - ;; - --snmp) - _known_hosts_real "$cur" - return 0 - ;; - --snmpversion) - COMPREPLY=( $( compgen -W '1 2c 3' -- "$cur" ) ) - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version --debug --config \ - --servicedir --libdir --families --suggest --shell \ - --remove-also --snmp --snmpversion --snmpcommunity' -- "$cur" ) ) - fi -} && -complete -F _munin_node_configure munin-node-configure - -# 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/completions/munin-node-configure b/completions/munin-node-configure new file mode 100644 index 00000000..7f1d5a59 --- /dev/null +++ b/completions/munin-node-configure @@ -0,0 +1,33 @@ +# munin-node-configure completion -*- shell-script -*- + +_munin_node_configure() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --config) + _filedir + return 0 + ;; + --servicedir|--libdir) + _filedir -d + return 0 + ;; + --snmp) + _known_hosts_real "$cur" + return 0 + ;; + --snmpversion) + COMPREPLY=( $( compgen -W '1 2c 3' -- "$cur" ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + fi +} && +complete -F _munin_node_configure munin-node-configure + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/munin-run b/completions/munin-run new file mode 100644 index 00000000..756a0e0a --- /dev/null +++ b/completions/munin-run @@ -0,0 +1,28 @@ +# munin-run completion -*- shell-script -*- + +_munin_run() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --config|--sconffile) + _filedir + return 0 + ;; + --servicedir|--sconfdir) + _filedir -d + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W \ + '$( command ls /etc/munin/plugins 2>/dev/null )' -- "$cur" ) ) + fi +} && +complete -F _munin_run munin-run + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/munin-update b/completions/munin-update new file mode 100644 index 00000000..f92f2f19 --- /dev/null +++ b/completions/munin-update @@ -0,0 +1,27 @@ +# munin-update completion -*- shell-script -*- + +_munin_update() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --config) + _filedir + return 0 + ;; + --host) + _known_hosts_real "$cur" + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--force-root --[no]force-root \ + --service --host --config --help --debug --nodebug \ + --fork --nofork --stdout --nostdout --timeout' -- "$cur" ) ) + fi +} && +complete -F _munin_update munin-update + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/munindoc b/completions/munindoc new file mode 100644 index 00000000..c5a03c1c --- /dev/null +++ b/completions/munindoc @@ -0,0 +1,13 @@ +# munindoc completion -*- shell-script -*- + +_munindoc() +{ + local cur prev words cword + _init_completion || return + + COMPREPLY=( $( compgen -W \ + '$( command ls /usr/share/munin/plugins 2>/dev/null )' -- "$cur" ) ) +} && +complete -F _munindoc munindoc + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/mutt b/completions/mutt index e5e9d289..70699a15 100644 --- a/completions/mutt +++ b/completions/mutt @@ -1,20 +1,18 @@ -# mutt completion +# mutt completion -*- shell-script -*- # # Mutt doesn't have an "addressbook" like Pine, but it has aliases and # a "query" function to retrieve addresses, so that's what we use here. -have mutt || have muttng && { - # @param $1 (cur) Current word to complete _muttaddr() { _muttaliases "$1" _muttquery "$1" - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -u -- "$1" ) ) + COMPREPLY+=( $( compgen -u -- "$1" ) ) return 0 -} # _muttaddr() +} # Find muttrc to use @@ -22,7 +20,7 @@ _muttaddr() _muttrc() { # Search COMP_WORDS for '-F muttrc' or '-Fmuttrc' argument - set -- "${COMP_WORDS[@]}" + set -- "${words[@]}" while [ $# -gt 0 ]; do if [ "${1:0:2}" = -F ]; then if [ ${#1} -gt 2 ]; then @@ -44,7 +42,7 @@ _muttrc() fi fi printf "%s" "$muttrc" -} # _muttrc() +} # Recursively build list of sourced config files @@ -61,21 +59,22 @@ _muttconffiles() while [[ "$1" ]]; do newconffiles=( $(sed -n 's|^source[[:space:]]\{1,\}\([^[:space:]]\{1,\}\).*$|\1|p' $(eval echo $1) ) ) for file in "${newconffiles[@]}"; do + __expand_tilde_by_ref file [[ ! -f "$file" || "${sofar/ ${file} / }" != "$sofar" ]] && continue - sofar="$sofar $file" + sofar+=" $file" sofar=" $(eval _muttconffiles \"$sofar\" $file) " done shift done printf '%s\n' $sofar -} # _muttconffiles() +} # @param $1 (cur) Current word to complete _muttaliases() { - local cur=$1 muttrc muttcmd=${COMP_WORDS[0]} + local cur=$1 muttrc muttcmd=${words[0]} local -a conffiles aliases muttrc=$(_muttrc) @@ -84,7 +83,7 @@ _muttaliases() conffiles=( $(eval _muttconffiles $muttrc $muttrc) ) aliases=( $( sed -n 's|^alias[[:space:]]\{1,\}\([^[:space:]]\{1,\}\).*$|\1|p' \ $(eval echo "${conffiles[@]}") ) ) - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${aliases[*]}" -- "$cur" ) ) + COMPREPLY+=( $( compgen -W "${aliases[*]}" -- "$cur" ) ) return 0 } @@ -93,19 +92,19 @@ _muttaliases() # @param $1 (cur) Current word to complete _muttquery() { - local cur=$1 querycmd muttcmd=${COMP_WORDS[0]} + local cur=$1 querycmd muttcmd=${words[0]} local -a queryresults - querycmd="$( $muttcmd -Q query_command | sed -e 's|^query_command=\"\(.*\)\"$|\1|' -e 's|%s|'$cur'|' )" + querycmd="$( $muttcmd -Q query_command 2>/dev/null | sed -e 's|^query_command=\"\(.*\)\"$|\1|' -e 's|%s|'$cur'|' )" if [[ -z "$cur" || -z "$querycmd" ]]; then queryresults=() else + __expand_tilde_by_ref querycmd queryresults=( $( $querycmd | \ sed -n '2,$s|^\([^[:space:]]\{1,\}\).*|\1|p' ) ) fi - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${queryresults[*]}" \ - -- "$cur" ) ) + COMPREPLY+=( $( compgen -W "${queryresults[*]}" -- "$cur" ) ) return 0 } @@ -114,38 +113,34 @@ _muttquery() # @param $1 (cur) Current word to complete _muttfiledir() { - local cur=$1 folder muttrc spoolfile muttcmd=${COMP_WORDS[0]} + local cur=$1 folder muttrc spoolfile muttcmd=${words[0]} muttrc=$(_muttrc) if [[ $cur == [=+]* ]]; then - folder="$( $muttcmd -F "$muttrc" -Q folder | sed -e 's|^folder=\"\(.*\)\"$|\1|' )" + folder="$( $muttcmd -F "$muttrc" -Q folder 2>/dev/null | sed -e 's|^folder=\"\(.*\)\"$|\1|' )" : folder:=~/Mail # Match any file in $folder beginning with $cur # (minus the leading '=' sign). - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -f -- "$folder/${cur:1}" ) ) COMPREPLY=( ${COMPREPLY[@]#$folder/} ) return 0 elif [ "$cur" == !* ]; then - spoolfile="$( $muttcmd -F "$muttrc" -Q spoolfile | \ + spoolfile="$( $muttcmd -F "$muttrc" -Q spoolfile 2>/dev/null | \ sed -e 's|^spoolfile=\"\(.*\)\"$|\1|' )" - [ ! -z "$spoolfile" ] && eval cur="${cur/^!/$spoolfile}"; + [ ! -z "$spoolfile" ] && eval cur="${cur/^!/$spoolfile}" fi _filedir return 0 -} # _muttfiledir +} _mutt() { - local cur prev - _get_comp_words_by_ref -n =+! cur prev - #cur=`_get_cword =+!` - #prev=`_get_pword =+!` - - COMPREPLY=() + local cur prev words cword + _init_completion -n =+! || return case $cur in -*) @@ -173,14 +168,7 @@ _mutt() esac ;; esac -} # _mutt() +} && complete -F _mutt -o default mutt muttng -} # have mutt - -# 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/completions/mysql b/completions/mysql new file mode 100644 index 00000000..effd313c --- /dev/null +++ b/completions/mysql @@ -0,0 +1,82 @@ +# mysql(1) completion -*- shell-script -*- + +_mysql() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -u|--user) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + -D|--database) + COMPREPLY=( $( compgen -W "$(mysqlshow 2>/dev/null|sed -ne '2d' -e 's/^|.\([^|]*\)|.*/\1/p')" -- "$cur" ) ) + return 0 + ;; + + -h|--host) + _known_hosts_real "$cur" + return 0 + ;; + --default-character-set) + [ -d /usr/share/mysql/charsets ] && \ + COMPREPLY=( $( compgen -W "$(command ls /usr/share/mysql/charsets|sed -e '/^\(README\|Index\.xml\)$/d' -e 's/.xml$//') utf8" -- "$cur" ) ) + return 0 + ;; + + --character-sets-dir|--ssl-capath) + _filedir -d + return 0 + ;; + -S|--socket) + _filedir sock + return 0 + ;; + --protocol) + COMPREPLY=( $( compgen -W 'tcp socket pipe memory' -- "$cur" ) ) + return 0 + ;; + --defaults-file|--defaults-extra-file|--tee) + _filedir + return 0 + ;; + --default-character-set|-P|--port|--set-variable|\ + --ssl-ca|--ssl-cert|--ssl-cipher|--ssl-key|\ + --connect_timeout|--max_allowed_packet|--prompt|\ + --net_buffer_length|--select_limit|--max_join_size|\ + --server-arg|--debug|--delimiter|--execute|-e|--pager) + # Argument required but no completions available + return 0 + ;; + '-?'|-I|--help|-V|--version) + # All other options are noop with these + return 0 + ;; + esac + + case $cur in + --*) + local help=$(_parse_help "$1") + help+=" --skip-comments --skip-ssl" + + COMPREPLY=( $( compgen -W "$help" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + ;; + + # only complete long options + -) + compopt -o nospace + COMPREPLY=( -- ) + return 0 + ;; + esac + + COMPREPLY=( $( compgen -W \ + "$(mysqlshow 2>/dev/null|sed -ne '2d' -e 's/^|.\([^|]*\)|.*/\1/p')" \ + -- "$cur" ) ) +} && +complete -F _mysql mysql + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/mysqladmin b/completions/mysqladmin index c9415696..fd8c3186 100644 --- a/completions/mysqladmin +++ b/completions/mysqladmin @@ -1,14 +1,9 @@ -# bash completion for mysqladmin +# bash completion for mysqladmin -*- shell-script -*- -have mysqladmin && _mysqladmin() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -u|--user) @@ -45,27 +40,16 @@ _mysqladmin() $split && return 0 - COMPREPLY=( $( compgen -W '--count --debug-check --debug-info --force \ - --compress --character-sets-dir --default-character-set --help --host \ - --no-beep --password --port --protocol --relative --set-variable \ - --silent --socket --sleep --ssl --ssl-ca --ssl-capath --ssl-cert \ - --ssl-cipher --ssl-key --ssl-verify-server-cert --user --verbose \ - --version --vertical --wait --connect_timeout --shutdown_timeout \ - --print-defaults --no-defaults --defaults-file --defaults-extra-file' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) - COMPREPLY=( "${COMPREPLY[@]}" \ + COMPREPLY+=( \ $( compgen -W 'create debug drop extended-status flush-hosts \ flush-logs flush-status flush-tables flush-threads flush-privileges \ kill password old-password ping processlist reload refresh shutdown \ status start-slave stop-slave variables version' -- "$cur" ) ) + + [[ $COMPREPLY == *= ]] && compopt -o nospace } && complete -F _mysqladmin mysqladmin -# 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/completions/ncftp b/completions/ncftp index b831f444..57347e0e 100644 --- a/completions/ncftp +++ b/completions/ncftp @@ -1,14 +1,11 @@ -# bash completion for ncftp +# bash completion for ncftp -*- shell-script -*- -have ncftp && _ncftp() { - local cur + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ $COMP_CWORD -eq 1 && -f ~/.ncftp/bookmarks ]]; then + if [[ $cword -eq 1 && -f ~/.ncftp/bookmarks ]]; then COMPREPLY=( $( compgen -W '$( sed -ne "s/^\([^,]\{1,\}\),.*$/\1/p" \ ~/.ncftp/bookmarks )' -- "$cur" ) ) fi @@ -17,10 +14,4 @@ _ncftp() } && complete -F _ncftp -o default ncftp -# 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/completions/net-tools b/completions/net-tools deleted file mode 100644 index e7de2b04..00000000 --- a/completions/net-tools +++ /dev/null @@ -1,131 +0,0 @@ -# bash completion for net tools - -have mii-tool && -_mii_tool() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--force) - COMPREPLY=( $( compgen -W '100baseTx-FD 100baseTx-HD \ - 10baseT-FD 10baseT-HD' -- "$cur" ) ) - return 0 - ;; - -A|--advertise) - COMPREPLY=( $( compgen -W '100baseT4 100baseTx-FD 100baseTx-HD \ - 10baseT-FD 10baseT-HD' -- "$cur" ) ) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--verbose --version --reset --restart \ - --watch --log --advertise --force' -- "$cur" ) ) - else - _available_interfaces -a - fi -} && -complete -F _mii_tool -o default mii-tool - -have mii-diag && -_mii_diag() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|-A|--advertise|--fixed-speed) - COMPREPLY=( $( compgen -W '100baseT4 100baseTx \ - 100baseTx-FD 100baseTx-HD 10baseT 10baseT-FD \ - 10baseT-HD' -- "$cur" ) ) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--advertise --fixed-speed --all-interfaces \ - --status --debug --read-parameters --set-parameters --msg-level \ - --phy --restart --reset --verbose --version --watch --help' \ - -- "$cur" ) ) - else - _available_interfaces -a - fi -} && -complete -F _mii_diag -o default mii-diag - -# Linux route(8) completion -# -[ $UNAME = Linux ] && have route && -_route() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [ "$prev" = dev ]; then - _available_interfaces - return 0 - fi - - # Remove already given options from completions - local i found - for opt in add del -host -net netmask metric mss window irtt reject mod \ - dyn reinstate dev default gw; do - found=false - for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do - [ "${COMP_WORDS[i]}" = "$opt" ] && found=true && break - done - $found || COMPREPLY[${#COMPREPLY[@]}]="$opt" - done - - COMPREPLY=( $( compgen -W '"${COMPREPLY[@]}"' -- "$cur" ) ) -} && -complete -F _route route - -have ether-wake && -_ether_wake() -{ - COMPREPLY=() - local cur prev - _get_comp_words_by_ref -n : cur prev - - case $prev in - -i) - _available_interfaces - return 0 - ;; - -p) - return 0 - ;; - esac - - if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W '-b -D -i -p -V' -- "$cur" ) ) - return 0 - fi - - _mac_addresses -} && -complete -F _ether_wake ether-wake - -# 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/completions/newgrp b/completions/newgrp new file mode 100644 index 00000000..ddcd79e8 --- /dev/null +++ b/completions/newgrp @@ -0,0 +1,16 @@ +# newgrp(1) completion -*- shell-script -*- + +_newgrp() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == "-" ]]; then + COMPREPLY=( - ) + else + _allowed_groups "$cur" + fi +} && +complete -F _newgrp newgrp + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/newlist b/completions/newlist new file mode 100644 index 00000000..9e2f6933 --- /dev/null +++ b/completions/newlist @@ -0,0 +1,17 @@ +# mailman newlist completion -*- shell-script -*- + +_newlist() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--language --quiet --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _newlist newlist + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/newusers b/completions/newusers new file mode 100644 index 00000000..aa1394d2 --- /dev/null +++ b/completions/newusers @@ -0,0 +1,31 @@ +# newusers(8) completion -*- shell-script -*- + +_newusers() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -c|--crypt) + COMPREPLY=( $( compgen -W 'DES MD5 NONE SHA256 SHA512' \ + -- "$cur" ) ) + return 0 + ;; + -s|--sha-rounds) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + _filedir +} && +complete -F _newusers newusers + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/nmap b/completions/nmap index 19f0a07e..89769bfb 100644 --- a/completions/nmap +++ b/completions/nmap @@ -1,13 +1,9 @@ -# bash completion for nmap +# bash completion for nmap -*- shell-script -*- -have nmap && _nmap() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=`_get_pword` + local cur prev words cword + _init_completion || return case $prev in -iL|-oN|-oX|-oS|-oG|---excludefile|--resume|--stylesheet) @@ -51,10 +47,4 @@ _nmap() } && complete -F _nmap nmap -# 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/completions/nslookup b/completions/nslookup new file mode 100644 index 00000000..8285ee1a --- /dev/null +++ b/completions/nslookup @@ -0,0 +1,75 @@ +# bash completion for nslookup -*- shell-script -*- + +_bind_queryclass() +{ + COMPREPLY+=( $( compgen -W 'IN CH HS ANY' -- "$cur" ) ) +} + +_bind_querytype() +{ + # http://en.wikipedia.org/wiki/List_of_DNS_record_types + COMPREPLY+=( $( compgen -W 'A AAAA AFSDB APL CERT CNAME DHCID DLV DNAME + DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR + RRSIG RP SIG SOA SPF SRV SSHFP TXT' -- "$cur" ) ) +} + +_nslookup() +{ + local cur prev words cword + _init_completion -n = || return + + case $cur in + -class=*|-cl=*) + cur=${cur#*=} + _bind_queryclass + return + ;; + -querytype=*|-type=*|-q=*|-ty=*) + cur=${cur#*=} + _bind_querytype + return + ;; + -?*=*) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '-all -class= -debug -nodebug -d2 -nod2 + -domain= -search -nosearch -port= -querytype= -recurse -norecurse + -retry= -timeout= -vc -novc -fail -nofail' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _nslookup nslookup + +_host() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -c) + _bind_queryclass + return + ;; + -t) + _bind_querytype + return + ;; + -m) + COMPREPLY=( $( compgen -W 'trace record usage' -- "$cur" ) ) + return + ;; + -N|-R|-W) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi +} && +complete -F _host host + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/ntpdate b/completions/ntpdate index bf004b55..e09a2dfb 100644 --- a/completions/ntpdate +++ b/completions/ntpdate @@ -1,12 +1,9 @@ -# bash completion for ntpdate +# bash completion for ntpdate -*- shell-script -*- -have ntpdate && _ntpdate() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -k) @@ -14,24 +11,25 @@ _ntpdate() return 0 ;; -U) - COMPREPLY=( $( compgen -u "$cur" ) ) + COMPREPLY=( $( compgen -u "$cur" ) ) + return 0 + ;; + -p) + COMPREPLY=( $( compgen -W '{1..8}' -- "$cur" ) ) + return 0 + ;; + + -a|-e|-o|-t) return 0 ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-4 -6 -b -B -d -Q -q -s -u -v -a\ - -e -k -p -o -r -t' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) else _known_hosts_real "$cur" fi } && complete -F _ntpdate ntpdate -# 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/completions/openssl b/completions/openssl index e9796e6f..68a13c2a 100644 --- a/completions/openssl +++ b/completions/openssl @@ -1,14 +1,13 @@ -# bash completion for openssl +# bash completion for openssl -*- shell-script -*- -have openssl && { _openssl_sections() { local config f # check if a specific configuration file is used - for (( i=2; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -config ]]; then - config=${COMP_WORDS[i+1]} + for (( i=2; i < cword; i++ )); do + if [[ "${words[i]}" == -config ]]; then + config=${words[i+1]} break fi done @@ -29,10 +28,10 @@ _openssl_sections() _openssl() { - local cur prev commands command options formats + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev + local commands command options formats commands='asn1parse ca ciphers crl crl2pkcs7 dgst dh dhparam dsa \ dsaparam ec ecparam enc engine errstr gendh gendsa genrsa \ @@ -49,10 +48,10 @@ _openssl() rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb rc4 \ rc4-40' - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) ) else - command=${COMP_WORDS[1]} + command=${words[1]} case $prev in -CA|-CAfile|-CAkey|-CAserial|-cert|-certfile|-config|-content| \ -dcert|-dkey|-dhparam|-extfile|-in|-inkey|-kfile|-key|-keyout| \ @@ -74,10 +73,10 @@ _openssl() formats='DER PEM' case $command in x509) - formats="$formats NET" + formats+=" NET" ;; smime) - formats="$formats SMIME" + formats+=" SMIME" ;; esac COMPREPLY=( $( compgen -W "$formats" -- "$cur" ) ) @@ -93,8 +92,8 @@ _openssl() return 0 ;; -cipher) - COMPREPLY=( $( compgen -W "$(openssl ciphers | \ - tr ':' '\n')" -- "$cur" ) ) + COMPREPLY=( $( IFS=: compgen -W "$( openssl ciphers )" \ + -- "$cur" ) ) return 0 ;; esac @@ -241,14 +240,7 @@ _openssl() fi fi fi -} +} && complete -F _openssl -o default openssl -} -# 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/completions/p4 b/completions/p4 index 59b02c1d..59d1bcd9 100644 --- a/completions/p4 +++ b/completions/p4 @@ -1,15 +1,15 @@ -# Perforce completion by Frank Cusack <frank@google.com> +# Perforce completion -*- shell-script -*- +# by Frank Cusack <frank@google.com> -have p4 && _p4() { - local cur prev words cword p4commands p4filetypes + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev words cword + local p4commands p4filetypes # rename isn't really a command - p4commands="$( p4 help commands | awk 'NF>3 {print $1}' )" + p4commands="$( p4 help commands 2>/dev/null | awk 'NF>3 {print $1}' )" p4filetypes="ctext cxtext ktext kxtext ltext tempobj ubinary \ uresource uxbinary xbinary xltext xtempobj xtext \ text binary resource" @@ -49,10 +49,4 @@ _p4() } && complete -F _p4 -o default p4 g4 -# 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/completions/pack200 b/completions/pack200 new file mode 100644 index 00000000..6be2dc88 --- /dev/null +++ b/completions/pack200 @@ -0,0 +1,75 @@ +# pack200(1) completion -*- shell-script -*- + +_pack200() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -S|--segment-limit|-P|--pass-file|-C|--class-attribute|\ + -F|--field-attribute|-M|--method-attribute|-D|--code-attribute|\ + '-?'|-h|--help|-V|--version|-J) + return 0 + ;; + -E|--effort) + COMPREPLY=( $( compgen -W '{0..9}' -- "$cur" ) ) + return 0 + ;; + -H|--deflate-hint) + COMPREPLY=( $( compgen -W 'true false keep' -- "$cur" ) ) + return 0 + ;; + -m|--modification-time) + COMPREPLY=( $( compgen -W 'latest keep' -- "$cur" ) ) + return 0 + ;; + -U|--unknown-attribute) + COMPREPLY=( $( compgen -W 'error strip pass' -- "$cur" ) ) + return 0 + ;; + -f|--config-file) + _filedir properties + return 0 + ;; + -l|--log-file) + COMPREPLY=( $( compgen -W '-' -- "$cur" ) ) + _filedir log + return 0 + ;; + -r|--repack) + _filedir jar + return 0 + ;; + esac + + $split && return + + # Check if a pack or a jar was already given. + local i pack=false jar=false + for (( i=0; i < ${#words[@]}-1; i++ )) ; do + case ${words[i]} in + *.pack|*.pack.gz) pack=true ;; + *.jar) jar=true ;; + esac + done + + if ! $pack ; then + if [[ "$cur" == -* ]] ; then + COMPREPLY=( $( compgen -W '--no-gzip --gzip --strip-debug \ + --no-keep-file-order --segment-limit= --effort= \ + --deflate-hint= --modification-time= --pass-file= \ + --unknown-attribute= --class-attribute= --field-attribute= \ + --method-attribute= --code-attribute= --config-file= \ + --verbose --quiet --log-file= --help --version -J \ + --repack' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + else + _filedir 'pack?(.gz)' + fi + elif ! $jar ; then + _filedir jar + fi +} && +complete -F _pack200 pack200 + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/passwd b/completions/passwd new file mode 100644 index 00000000..e470b8bb --- /dev/null +++ b/completions/passwd @@ -0,0 +1,23 @@ +# passwd(1) completion -*- shell-script -*- + +_passwd() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -n|--minimum|-x|--maximum|-w|--warning|-i|--inactive|-\?|--help|--usage) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + _allowed_users +} && +complete -F _passwd passwd + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/perl b/completions/perl index 843e249b..a67c7699 100644 --- a/completions/perl +++ b/completions/perl @@ -1,26 +1,26 @@ -# bash completion for perl +# bash completion for perl -*- shell-script -*- -have perl && -{ _perlmodules() { - COMPREPLY=( $( compgen -P "$prefix" -W "$( $1 ${BASH_SOURCE[0]%/*}/helpers/perl modules $cur )" -- "$cur" ) ) + COMPREPLY=( $( compgen -P "$prefix" -W \ + "$( ${1:-perl} ${BASH_SOURCE[0]%/*}/../helpers/perl modules $cur )" \ + -- "$cur" ) ) __ltrim_colon_completions "$prefix$cur" } _perlfunctions() { - COMPREPLY=( $( compgen -P "$prefix" -W "$( ${BASH_SOURCE[0]%/*}/helpers/perl functions $cur )" -- "$cur" ) ) + COMPREPLY=( $( compgen -P "$prefix" -W \ + "$( ${1:-perl} ${BASH_SOURCE[0]%/*}/../helpers/perl functions $cur )" \ + -- "$cur" ) ) } _perl() { - local cur prev prefix temp - local optPrefix optSuffix + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev - prefix="" + local prefix="" temp optPrefix optSuffix # If option not followed by whitespace, reassign prev and cur if [[ "$cur" == -?* ]]; then @@ -38,13 +38,13 @@ _perl() ;; -I|-x) local IFS=$'\n' - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -d $optPrefix $optSuffix -- "$cur" ) ) return 0 ;; -m|-M) temp="${cur#-}" - prefix="$prefix${cur%$temp}" + prefix+="${cur%$temp}" cur="$temp" _perlmodules $1 return 0 @@ -52,7 +52,7 @@ _perl() -V) if [[ $cur == :* ]]; then temp="${cur##+(:)}" - prefix="$prefix${cur%$temp}" + prefix+="${cur%$temp}" local IFS=$'\n' COMPREPLY=( $( compgen -P "$prefix" -W \ '$( $1 -MConfig -e "print join \"\\n\", @@ -78,16 +78,15 @@ _perl() else _filedir fi -} +} && complete -F _perl perl _perldoc() { - local cur prev prefix temp + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev - prefix="" + local prefix="" temp # completing an option (may or may not be separated by a space) if [[ "$cur" == -?* ]]; then @@ -97,10 +96,13 @@ _perldoc() prefix=$prev fi + local perl="${1%doc}" + [[ $perl == $1 ]] || ! type $perl &>/dev/null && perl= + # complete builtin perl functions case $prev in -f) - _perlfunctions "$cur" + _perlfunctions $perl return 0 ;; esac @@ -109,23 +111,19 @@ _perldoc() COMPREPLY=( $( compgen -W '-h -v -t -u -m -l -F -X -f -q' -- "$cur" )) else # return available modules (unless it is clearly a file) - if [[ "$cur" != */* ]]; then - _perlmodules - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W \ - '$( PAGER=/bin/cat man perl | \ - sed -ne "/perl.*Perl overview/,/perlwin32/p" | \ - awk "\$NF=2 { print \$1}" | command grep perl )' -- "$cur" ) ) + if [[ "$cur" != @(*/|[.~])* ]]; then + _perlmodules $perl + if [[ $cur == p* ]]; then + COMPREPLY+=( $( compgen -W \ + '$( PERLDOC_PAGER=/bin/cat "$1" -u perl | \ + sed -ne "/perl.*Perl overview/,/perlwin32/p" | \ + awk "\$NF=2 && \$1 ~ /^perl/ { print \$1 }" )' \ + -- "$cur" ) ) + fi fi _filedir 'p@(l|m|od)' fi -} +} && complete -F _perldoc -o bashdefault perldoc -} -# 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/completions/pgrep b/completions/pgrep new file mode 100644 index 00000000..9e66fb95 --- /dev/null +++ b/completions/pgrep @@ -0,0 +1,38 @@ +# pgrep(1) completion -*- shell-script -*- + +_pgrep() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -d|-g|-s|-t) + return + ;; + -G) + _gids + return + ;; + -P) + _pids + return + ;; + -u|-U) + _uids + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return + fi + + _pnames +} && +complete -F _pgrep pgrep + +# Linux pidof(8) completion. +[[ $OSTYPE == *linux* ]] && complete -F _pgrep pidof + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pine b/completions/pine index 2f069287..39227625 100644 --- a/completions/pine +++ b/completions/pine @@ -1,22 +1,13 @@ -# PINE address-book completion +# PINE address-book completion -*- shell-script -*- -have pine || have alpine && _pineaddr() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return COMPREPLY=( $( compgen -W '$( awk "{print \$1}" ~/.addressbook \ 2>/dev/null)' -- "$cur" ) ) } && complete -F _pineaddr -o default pine alpine -# 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/completions/ping b/completions/ping new file mode 100644 index 00000000..7b1f77a0 --- /dev/null +++ b/completions/ping @@ -0,0 +1,61 @@ +# ping(8) completion -*- shell-script -*- + +_ping() +{ + local cur prev words cword + _init_completion -n = || return + + case $prev in + -c|-F|-G|-g|-h|-i|-l|-m|-P|-p|-s|-t|-V|-W|-w|-z) + return + ;; + -I) + _available_interfaces -a + return + ;; + -M) + # Path MTU strategy in Linux, mask|time in FreeBSD + local opts="do want dont" + [[ $OSTYPE == *bsd* ]] && opts="mask time" + COMPREPLY=( $( compgen -W '$opts' -- "$cur" ) ) + return + ;; + -N) + if [[ $cur != *= ]]; then + COMPREPLY=( $( compgen -W 'name ipv6 ipv6-global ipv6-sitelocal + ipv6-linklocal ipv6-all ipv4 ipv4-all subject-ipv6= + subject-ipv4= subject-name= subject-fqdn=' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi + return + ;; + -Q) + # TOS in Linux, "somewhat quiet" (no args) in FreeBSD + if [[ $OSTYPE != *bsd* ]]; then + COMPREPLY=( $( compgen -W '{0..7}' -- "$cur" ) ) + return + fi + ;; + -S) + # Socket sndbuf in Linux, source IP in FreeBSD + [[ $OSTYPE == *bsd* ]] && _ip_addresses + return + ;; + -T) + # Timestamp option in Linux, TTL in FreeBSD + [[ $OSTYPE == *bsd* ]] || \ + COMPREPLY=( $( compgen -W 'tsonly tsandaddr' -- "$cur" ) ) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return + fi + + _known_hosts_real "$cur" +} && +complete -F _ping ping ping6 + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pkg-config b/completions/pkg-config index b999bd81..0156c0dd 100644 --- a/completions/pkg-config +++ b/completions/pkg-config @@ -1,14 +1,9 @@ -# bash completion for pkgconfig +# bash completion for pkgconfig -*- shell-script -*- -have pkg-config && _pkg_config() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in --variable|--define-variable|--atleast-version|--atleast-pkgconfig-version| \ @@ -25,16 +20,8 @@ _pkg_config() $split && return 0 if [[ "$cur" == -* ]]; then - # return list of available options - COMPREPLY=( $( compgen -W '--version --modversion \ - --atleast-pkgconfig-version --libs --static \ - --short-errors --libs-only-l --libs-only-other \ - --libs-only-L --cflags --cflags-only-I \ - --cflags-only-other --variable --define-variable \ - --exists --uninstalled --atleast-version \ - --exact-version --max-version --list-all --debug \ - --print-errors --silence-errors --errors-to-stdout \ - --print-provides --print-requires --help --usage' -- "$cur") ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else COMPREPLY=( $( compgen -W "$( pkg-config --list-all \ 2>/dev/null | awk '{print $1}' )" -- "$cur" ) ) @@ -42,10 +29,4 @@ _pkg_config() } && complete -F _pkg_config pkg-config -# 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/completions/pkg_delete b/completions/pkg_delete new file mode 100644 index 00000000..15770acb --- /dev/null +++ b/completions/pkg_delete @@ -0,0 +1,21 @@ +# bash completion for FreeBSD package management tools -*- shell-script -*- + +[[ $OSTYPE == *freebsd* ]] || return 1 + +_pkg_delete() +{ + local cur prev words cword + _init_completion || return + + local pkgdir=${PKG_DBDIR:-/var/db/pkg}/ + + [[ "$prev" == -o || "$prev" == -p || "$prev" == -W ]] && return 0 + + COMPREPLY=( $( compgen -d "$pkgdir$cur" ) ) + COMPREPLY=( ${COMPREPLY[@]#$pkgdir} ) + + return 0 +} && +complete -F _pkg_delete -o dirnames pkg_delete pkg_info pkg_deinstall + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pkg_install b/completions/pkg_install deleted file mode 100644 index 577d9c94..00000000 --- a/completions/pkg_install +++ /dev/null @@ -1,30 +0,0 @@ -# bash completion for FreeBSD base package management tools - -[ $UNAME = FreeBSD ] && -{ - -_pkg_delete() -{ - local cur pkgdir prev - - pkgdir=${PKG_DBDIR:-/var/db/pkg}/ - _get_comp_words_by_ref cur prev - - [[ "$prev" == -o || "$prev" == -p || "$prev" == -W ]] && return 0 - - COMPREPLY=( $( compgen -d "$pkgdir$cur" ) ) - COMPREPLY=( ${COMPREPLY[@]#$pkgdir} ) - - return 0 -} -complete -F _pkg_delete -o dirnames pkg_delete pkg_info - -} - -# 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/completions/pkgtool b/completions/pkgtool new file mode 100644 index 00000000..f7291dbd --- /dev/null +++ b/completions/pkgtool @@ -0,0 +1,36 @@ +# Slackware Linux pkgtool completion -*- shell-script -*- + +_pkgtool() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + --source_dir|--target_dir) + _filedir -d + return 0 + ;; + --sets) + # argument required but no completions available + return 0 + ;; + --source_device) + COMPREPLY=( $( compgen -f -d -- "${cur:-/dev/}" ) ) + return 0 + ;; + --tagfile) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--sets --ignore-tagfiles --tagfile \ + --source-mounted --source_dir --target_dir --source_device' \ + -- "$cur" ) ) + return 0 + fi +} && +complete -F _pkgtool pkgtool + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pkgtools b/completions/pkgtools deleted file mode 100644 index 3a5df278..00000000 --- a/completions/pkgtools +++ /dev/null @@ -1,22 +0,0 @@ -# bash completion for Slackware Linux pkgtools - -have removepkg && [ -f /etc/slackware-version ] && -_removepkg() -{ - local packages cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - COMPREPLY=( $( (cd /var/log/packages; compgen -f -- "$cur") ) ) -} && -complete -F _removepkg -o filenames removepkg && - complete -o dirnames -f -X '!*.t[bglx]z' installpkg upgradepkg explodepkg - -# 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/completions/pm-hibernate b/completions/pm-hibernate new file mode 100644 index 00000000..24b30b17 --- /dev/null +++ b/completions/pm-hibernate @@ -0,0 +1,12 @@ +# bash completion for pm-utils -*- shell-script -*- + +_pm_action() +{ + local cur prev words cword + _init_completion || return + + COMPREPLY=( $( compgen -W "--help $( _parse_help "$1" )" -- "$cur" ) ) +} && +complete -F _pm_action pm-hibernate pm-suspend pm-suspend-hybrid + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pm-is-supported b/completions/pm-is-supported new file mode 100644 index 00000000..2ca5a9ec --- /dev/null +++ b/completions/pm-is-supported @@ -0,0 +1,13 @@ +# pm-is-supported(1) completion -*- shell-script -*- + +_pm_is_supported() +{ + local cur prev words cword + _init_completion || return + + COMPREPLY=( $( compgen -W '--help --suspend --hibernate --suspend-hybrid' \ + -- "$cur" ) ) +} && +complete -F _pm_is_supported pm-is-supported + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pm-powersave b/completions/pm-powersave new file mode 100644 index 00000000..1f790dca --- /dev/null +++ b/completions/pm-powersave @@ -0,0 +1,12 @@ +# pm-powersave(8) completion -*- shell-script -*- + +_pm_powersave() +{ + local cur prev words cword + _init_completion || return + + COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) +} && +complete -F _pm_powersave pm-powersave + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pm-utils b/completions/pm-utils deleted file mode 100644 index 4deb82e7..00000000 --- a/completions/pm-utils +++ /dev/null @@ -1,37 +0,0 @@ -# bash completion for pm-utils - -have pm-is-supported && -_pm_is_supported() -{ - local cur - _get_comp_words_by_ref cur - COMPREPLY=( $( compgen -W '--help --suspend --hibernate --suspend-hybrid' \ - -- "$cur" ) ) -} && -complete -F _pm_is_supported pm-is-supported - -have pm-hibernate || have pm-suspend || have pm-suspend-hybrid && -_pm_action() -{ - local cur - _get_comp_words_by_ref cur - COMPREPLY=( $( compgen -W "--help $( _parse_help "$1" )" -- "$cur" ) ) -} && -complete -F _pm_action pm-hibernate pm-suspend pm-suspend-hybrid - -have pm-powersave && -_pm_powersave() -{ - local cur - _get_comp_words_by_ref cur - COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) -} && -complete -F _pm_powersave pm-powersave - -# 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/completions/portinstall b/completions/portinstall new file mode 100644 index 00000000..3b30c5b3 --- /dev/null +++ b/completions/portinstall @@ -0,0 +1,32 @@ +# bash completion for FreeBSD portinstall -*- shell-script -*- + +_portinstall() +{ + local cur prev words cword + _init_completion || return + + local portsdir indexfile + local -a COMPREPLY2 + + portsdir=${PORTSDIR:-/usr/ports}/ + + # First try INDEX-5 + indexfile=$portsdir/INDEX-5 + # Then INDEX if INDEX-5 does not exist or system is not FreeBSD 5.x + [[ "${OSTYPE%.*}" == freebsd5 && -f $indexfile ]] || + indexfile=$portsdir/INDEX + + [[ "$prev" == -l || "$prev" == -L || "$prev" == -o ]] && return 0 + + COMPREPLY=( $( command grep -E "^$cur" 2>/dev/null < $indexfile | \ + cut -d'|' -f1 ) ) + COMPREPLY2=( $( command grep -E "^[^\|]+\|$portsdir$cur" 2>/dev/null \ + < $indexfile | cut -d'|' -f2 ) ) + COMPREPLY2=( ${COMPREPLY2[@]#$portsdir} ) + COMPREPLY+=( "${COMPREPLY2[@]}" ) + + return 0 +} && +complete -F _portinstall -o dirnames portinstall + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/portupgrade b/completions/portupgrade index 5389a5ca..96e4fb6d 100644 --- a/completions/portupgrade +++ b/completions/portupgrade @@ -1,15 +1,14 @@ -# bash completion for FreeBSD portupgrade package +# bash completion for FreeBSD portupgrade -*- shell-script -*- -have portupgrade && _portupgrade() { - local cur pkgdir prev - - pkgdir=${PKG_DBDIR:-/var/db/pkg}/ - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return [[ "$prev" == -l || "$prev" == -L || "$prev" == -o ]] && return 0 + local pkgdir=${PKG_DBDIR:-/var/db/pkg}/ + COMPREPLY=( $( compgen -d "$pkgdir$cur" ) ) COMPREPLY=( ${COMPREPLY[@]#$pkgdir} ) COMPREPLY=( ${COMPREPLY[@]%-*} ) @@ -18,40 +17,4 @@ _portupgrade() } && complete -F _portupgrade -o dirnames portupgrade -have portinstall && -_portinstall() -{ - local cur portsdir prev indexfile - local -a COMPREPLY2 - - portsdir=${PORTSDIR:-/usr/ports}/ - _get_comp_words_by_ref cur prev - # First try INDEX-5 - indexfile=$portsdir/INDEX-5 - # Then INDEX if INDEX-5 does not exist or system is not FreeBSD 5.x - [[ "${OSTYPE%.*}" == freebsd5 && -f $indexfile ]] || - indexfile=$portsdir/INDEX - - [[ "$prev" == -l || "$prev" == -L || "$prev" == -o ]] && return 0 - - COMPREPLY=( $( command grep -E "^$cur" < $indexfile | cut -d'|' -f1 ) ) - COMPREPLY2=( $( command grep -E "^[^\|]+\|$portsdir$cur" < $indexfile | \ - cut -d'|' -f2 ) ) - COMPREPLY2=( ${COMPREPLY2[@]#$portsdir} ) - COMPREPLY=( "${COMPREPLY[@]}" "${COMPREPLY2[@]}" ) - - return 0 -} && -complete -F _portinstall -o dirnames portinstall - -# _pkg_delete is in pkg_install -type _pkg_delete &>/dev/null && have pkg_deinstall && \ -complete -F _pkg_delete -o dirnames pkg_deinstall - -# 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/completions/postcat b/completions/postcat new file mode 100644 index 00000000..c601cb0c --- /dev/null +++ b/completions/postcat @@ -0,0 +1,42 @@ +# postcat(1) completion -*- shell-script -*- + +_postcat() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -c) + _filedir -d + return 0 + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + local idx qfile=0 + for idx in "${words[@]}"; do + [[ "$idx" = -q ]] && qfile=1 && break + done + if [[ $qfile -eq 1 ]]; then + local len=${#cur} pval + idx=0 + for pval in $( mailq 2>/dev/null | \ + sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* !].*$//' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + else + _filedir + return 0 + fi +} && +complete -F _postcat postcat + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/postconf b/completions/postconf new file mode 100644 index 00000000..5b998d9e --- /dev/null +++ b/completions/postconf @@ -0,0 +1,41 @@ +# postconf(1) completion -*- shell-script -*- + +_postconf() +{ + local cur prev words cword + _init_completion || return + + local eqext + + case $prev in + -b|-t) + _filedir + return 0 + ;; + -c) + _filedir -d + return 0 + ;; + -e) + cur=${cur#[\"\']} + eqext='=' + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + local len=${#cur} idx=0 pval + for pval in $( /usr/sbin/postconf 2>/dev/null | cut -d ' ' -f 1 ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]="$pval$eqext" + idx=$(($idx+1)) + fi + done + return 0 +} && +complete -F _postconf postconf + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/postfix b/completions/postfix index 1311c987..7eefccbb 100644 --- a/completions/postfix +++ b/completions/postfix @@ -1,14 +1,9 @@ -# bash completion for postfix +# postfix(1) completion -*- shell-script -*- -have postfix && { -# postfix(1) -# _postfix() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -c) @@ -22,212 +17,13 @@ _postfix() esac if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W '-c -D -v' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) return 0 fi COMPREPLY=( $( compgen -W 'check start stop abort flush reload status \ set-permissions upgrade-configuration' -- "$cur" ) ) -} +} && complete -F _postfix postfix -# postalias(1) and postmap(1) -# -_postmap() -{ - local cur prev len idx - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -c) - _filedir -d - return 0 - ;; - -[dq]) - return 0 - ;; - esac - - if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W '-N -f -i -n -o -p -r -v -w -c -d -q' \ - -- "$cur" ) ) - return 0 - fi - - if [[ "$cur" == *:* ]]; then - _compopt_o_filenames - COMPREPLY=( $( compgen -f -- "${cur#*:}" ) ) - else - len=${#cur} - idx=0 - for pval in $( /usr/sbin/postconf -m ); do - if [[ "$cur" == "${pval:0:$len}" ]]; then - COMPREPLY[$idx]="$pval:" - idx=$(($idx+1)) - fi - done - if [[ $idx -eq 0 ]]; then - _compopt_o_filenames - COMPREPLY=( $( compgen -f -- "$cur" ) ) - fi - fi - return 0 -} -complete -F _postmap postmap postalias - -# postcat(1) -# -_postcat() -{ - local cur prev pval len idx qfile - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -c) - _filedir -d - return 0 - ;; - esac - - if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W '-c -q -v' -- "$cur" ) ) - return 0 - fi - - qfile=0 - for idx in "${COMP_WORDS[@]}"; do - [[ "$idx" = -q ]] && qfile=1 && break - done - if [[ $qfile == 1 ]]; then - len=${#cur} - idx=0 - for pval in $( mailq 2>/dev/null | \ - sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* !].*$//' ); do - if [[ "$cur" == "${pval:0:$len}" ]]; then - COMPREPLY[$idx]=$pval - idx=$(($idx+1)) - fi - done - return 0 - else - _filedir - return 0 - fi -} -complete -F _postcat postcat - -# postconf(1) -# -_postconf() -{ - local cur prev pval len idx eqext - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -b|-t) - _filedir - return 0 - ;; - -c) - _filedir -d - return 0 - ;; - -e) - cur=${cur#[\"\']} - eqext='=' - ;; - esac - - if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W '-A -a -b -c -d -e -h -m -l -n -t -v' \ - -- "$cur" ) ) - return 0 - fi - - len=${#cur} - idx=0 - for pval in $( /usr/sbin/postconf 2>/dev/null | cut -d ' ' -f 1 ); do - if [[ "$cur" == "${pval:0:$len}" ]]; then - COMPREPLY[$idx]="$pval$eqext" - idx=$(($idx+1)) - fi - done - return 0 -} -complete -F _postconf postconf - -# postsuper(1) -# -_postsuper() -{ - local cur prev pval len idx - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -c) - _filedir -d - return 0 - ;; - -[dr]) - len=${#cur} - idx=0 - for pval in ALL $( mailq 2>/dev/null | \ - sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* !].*$//' ); do - if [[ "$cur" == "${pval:0:$len}" ]]; then - COMPREPLY[$idx]=$pval - idx=$(($idx+1)) - fi - done - return 0 - ;; - -h) - len=${#cur} - idx=0 - for pval in ALL $( mailq 2>/dev/null | \ - sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* ].*$//; /!$/d' ); do - if [[ "$cur" == "${pval:0:$len}" ]]; then - COMPREPLY[$idx]=$pval - idx=$(($idx+1)) - fi - done - return 0 - ;; - -H) - len=${#cur} - idx=0 - for pval in ALL $( mailq 2>/dev/null | \ - sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; /^[0-9A-Z]*[* ]/d; s/!.*$//' ); do - if [[ "$cur" == "${pval:0:$len}" ]]; then - COMPREPLY[$idx]=$pval - idx=$(($idx+1)) - fi - done - return 0 - ;; - esac - - if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W '-c -d -h -H -p -r -s -v' -- "$cur" ) ) - return 0 - fi - - COMPREPLY=( $( compgen -W 'hold incoming active deferred' -- "$cur" ) ) -} -complete -F _postsuper postsuper -} - -# 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/completions/postmap b/completions/postmap new file mode 100644 index 00000000..001db9b5 --- /dev/null +++ b/completions/postmap @@ -0,0 +1,43 @@ +# postalias(1) and postmap(1) completion -*- shell-script -*- + +_postmap() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -c) + _filedir -d + return 0 + ;; + -[dq]) + return 0 + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + if [[ "$cur" == *:* ]]; then + compopt -o filenames + COMPREPLY=( $( compgen -f -- "${cur#*:}" ) ) + else + local len=${#cur} idx=0 pval + for pval in $( /usr/sbin/postconf -m 2>/dev/null ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]="$pval:" + idx=$(($idx+1)) + fi + done + if [[ $idx -eq 0 ]]; then + compopt -o filenames + COMPREPLY=( $( compgen -f -- "$cur" ) ) + fi + fi + return 0 +} && +complete -F _postmap postmap postalias + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/postsuper b/completions/postsuper new file mode 100644 index 00000000..25bc916f --- /dev/null +++ b/completions/postsuper @@ -0,0 +1,62 @@ +# postsuper(1) completion -*- shell-script -*- + +_postsuper() +{ + local cur prev words cword + _init_completion || return + + local pval len idx + + case $prev in + -c) + _filedir -d + return 0 + ;; + -[dr]) + len=${#cur} + idx=0 + for pval in ALL $( mailq 2>/dev/null | \ + sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* !].*$//' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + ;; + -h) + len=${#cur} + idx=0 + for pval in ALL $( mailq 2>/dev/null | \ + sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* ].*$//; /!$/d' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + ;; + -H) + len=${#cur} + idx=0 + for pval in ALL $( mailq 2>/dev/null | \ + sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; /^[0-9A-Z]*[* ]/d; s/!.*$//' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + + COMPREPLY=( $( compgen -W 'hold incoming active deferred' -- "$cur" ) ) +} && +complete -F _postsuper postsuper + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/povray b/completions/povray index a843a5cb..e5ef9df6 100644 --- a/completions/povray +++ b/completions/povray @@ -1,13 +1,13 @@ -# povray completion by "David Necas (Yeti)" <yeti@physics.muni.cz> +# povray completion -*- shell-script -*- +# by "David Necas (Yeti)" <yeti@physics.muni.cz> -have povray || have xpovray || have spovray && _povray() { - local cur prev povcur pfx oext defoext - defoext=png # default output extension, if cannot be determined FIXME + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref -c povcur prev + local povcur=$cur pfx oext defoext + defoext=png # default output extension, if cannot be determined FIXME _expand || return 0 @@ -21,14 +21,14 @@ _povray() ;; [-+]O*) # guess what output file type user may want - case $( ( IFS=$'\n'; command grep '^[-+]F' <<<"${COMP_WORDS[*]}" ) ) in + case $( ( IFS=$'\n'; command grep '^[-+]F' <<<"${words[*]}" ) ) in [-+]FN) oext=png ;; [-+]FP) oext=ppm ;; [-+]F[CT]) oext=tga ;; *) oext=$defoext ;; esac # complete filename corresponding to previously specified +I - COMPREPLY=( $( ( IFS=$'\n'; command grep '^[-+]I' <<<"${COMP_WORDS[*]}" ) ) ) + COMPREPLY=( $( ( IFS=$'\n'; command grep '^[-+]I' <<<"${words[*]}" ) ) ) COMPREPLY=( ${COMPREPLY[@]#[-+]I} ) COMPREPLY=( ${COMPREPLY[@]/%.pov/.$oext} ) cur="${povcur#[-+]O}" # to confuse _filedir @@ -48,7 +48,6 @@ _povray() return 0 ;; *) - cur="$povcur" _filedir '@(ini|pov)' return 0 ;; @@ -56,10 +55,4 @@ _povray() } && complete -F _povray povray xpovray spovray -# 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/completions/prelink b/completions/prelink new file mode 100644 index 00000000..f84261d1 --- /dev/null +++ b/completions/prelink @@ -0,0 +1,42 @@ +# prelink(8) completion -*- shell-script -*- + +_prelink() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -'?'|--help|--usage|-V|--version|-r|--reloc-only) + return + ;; + -b|--black-list|--dynamic-linker|--undo-output) + _filedir + return + ;; + -c|--config-file) + _filedir conf + return + ;; + -C|--cache) + _filedir cache + return + ;; + --ld-library-path) + _filedir -d + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + _filedir +} && +complete -F _prelink prelink + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/procps b/completions/procps deleted file mode 100644 index db8fc3d5..00000000 --- a/completions/procps +++ /dev/null @@ -1,49 +0,0 @@ -# Completions for tools included in procps and related - -# killall(1) (Linux and FreeBSD) and pkill(1) completion. -# -[[ $UNAME == Linux || $UNAME == FreeBSD ]] || have pkill && -_killall() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ $COMP_CWORD -eq 1 && "$cur" == -* ]]; then - _signals - else - _pnames - fi - - return 0 -} -[[ $UNAME == Linux || $UNAME == FreeBSD ]] && complete -F _killall killall -have pkill && complete -F _killall pkill - -# pgrep(1) completion. -# -[ $UNAME = Linux ] || have pgrep && -_pgrep() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - _pnames - - return 0 -} -have pgrep && complete -F _pgrep pgrep - -# Linux pidof(8) completion. -[ $UNAME = Linux ] && complete -F _pgrep pidof - -# 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/completions/protoc b/completions/protoc new file mode 100644 index 00000000..4621cf64 --- /dev/null +++ b/completions/protoc @@ -0,0 +1,63 @@ +# protoc completion -*- shell-script -*- + +_protoc() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --proto_path|--cpp_out|--java_out|--python_out) + _filedir -d + return + ;; + --version|-h|--help|--encode|--decode) + return + ;; + --descriptor_set_out) + _filedir + return + ;; + --error_format) + COMPREPLY=( $( compgen -W 'gcc msvs' -- "$cur" ) ) + return + ;; + --plugin) + if [[ $cur != *=* ]]; then + compopt -o filenames + COMPREPLY=( $( compgen -c -- "$cur" ) ) + fi + return + ;; + esac + + $split && return + + case $cur in + -o*) + cur=${cur:2} + _filedir + COMPREPLY=( "${COMPREPLY[@]/#/-o}" ) + return + ;; + -I*) + cur=${cur:2} + _filedir -d + COMPREPLY=( "${COMPREPLY[@]/#/-I}" ) + return + ;; + -*) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + local i + for i in ${!COMPREPLY[@]}; do + [[ ${COMPREPLY[i]} == -oFILE ]] && unset COMPREPLY[i] + done + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + ;; + esac + + _filedir proto +} && +complete -F _protoc protoc + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/postgresql b/completions/psql index f874b67b..7e4276bc 100644 --- a/completions/postgresql +++ b/completions/psql @@ -1,6 +1,5 @@ -# bash completion for Postgresql +# bash completion for Postgresql -*- shell-script -*- -have psql && { _pg_databases() { # -w was introduced in 8.4, https://launchpad.net/bugs/164772 @@ -21,12 +20,8 @@ _pg_users() # _createdb() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -h|--host) @@ -50,25 +45,20 @@ _createdb() $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--tablespace --template --encoding --host \ - --port --username --password --echo --quiet --help --version' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else _pg_databases fi -} +} && complete -F _createdb -o default createdb # dropdb(1) completion # _dropdb() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -h|--host) @@ -88,24 +78,20 @@ _dropdb() $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--host --port --username --password \ - --interactive --echo --quiet --help --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else _pg_databases fi -} +} && complete -F _dropdb -o default dropdb # psql(1) completion # _psql() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -h|--host) @@ -139,24 +125,13 @@ _psql() if [[ "$cur" == -* ]]; then # return list of available options - COMPREPLY=( $( compgen -W '--echo-all --no-align --command --dbname \ - --echo-queries --echo-hidden --file --field-separator --host \ - --html --list --log-file --output --port --pset --quiet \ - --record-separator --single-step --single-line --tuples-only \ - --table-attr --username --set --version --password --expanded \ - --no-psqlrc --single-transaction --help' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else # return list of available databases _pg_databases fi -} +} && complete -F _psql psql -} -# 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/completions/puppet b/completions/puppet new file mode 100644 index 00000000..776c8492 --- /dev/null +++ b/completions/puppet @@ -0,0 +1,310 @@ +# bash completion for puppet -*- shell-script -*- + +_puppet_logdest() +{ + if [ -z "$cur" ]; then + COMPREPLY=( $( compgen -W 'syslog console /' -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W 'syslog console' -- "$cur" ) ) + _filedir + fi +} + +_puppet_digest() +{ + COMPREPLY=( $( compgen -W 'MD5 MD2 SHA1 SHA256' -- "$cur" ) ) +} + +_puppet_certs() +{ + local puppetca="puppet cert" + PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type puppetca &>/dev/null \ + && puppetca=puppetca + + if [[ "$1" = '--all' ]]; then + cert_list=$( $puppetca --list --all | sed -e 's/^[+-]\?\s*\(\S\+\)\s\+.*$/\1/' ) + else + cert_list=$( $puppetca --list ) + fi + COMPREPLY+=( $( compgen -W "$cert_list" -- "$cur" ) ) +} + +_puppet_types() +{ + puppet_types=$( puppet describe --list | sed -e 's/^\(\S\+\).*$/\1/' ) + COMPREPLY+=( $( compgen -W "$puppet_types" -- "$cur" ) ) +} + +_puppet_references() +{ + local puppetdoc="puppet doc" + PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type puppetdoc &>/dev/null \ + && puppetdoc=puppetdoc + + puppet_doc_list=$( $puppetdoc --list | sed -e 's/^\(\S\+\).*$/\1/' ) + COMPREPLY+=( $( compgen -W "$puppet_doc_list" -- "$cur" ) ) +} + +_puppet() +{ + local cur prev words cword + _init_completion || return + + local xspec helpopts command subcommand + + case $prev in + --help) + return 0 + ;; + esac + + case ${words[0]} in + puppetmasterd) + command=master + ;; + puppetd) + command=agent + ;; + puppetca) + command=cert + ;; + ralsh) + command=resource + ;; + puppetrun) + command=kick + ;; + puppetqd) + command=queue + ;; + filebucket) + command=filebucket + ;; + puppetdoc) + command=doc + ;; + pi) + command=describe + ;; + puppet) + case ${words[1]} in + agent|apply|cert|describe|doc|filebucket|kick|master|queue|resource) + command=${words[1]} + ;; + *.pp|*.rb|-*) + command=apply + ;; + *) + COMPREPLY=( $( compgen -W 'agent apply cert describe doc \ + filebucket kick master queue resource' -- "$cur" ) ) + return 0 + ;; + esac + esac + + case $command in + agent) + case $prev in + --fqdn) + return 0 + ;; + --logdest) + _puppet_logdest + return 0 + ;; + --serve) + # From /usr/lib/ruby/1.8/puppet/network/handler/ + COMPREPLY=( $( compgen -W 'ca filebucket fileserver master \ + report runner status' -- "$cur" ) ) + return 0 + ;; + --digest) + _puppet_digest + return 0 + ;; + --waitforcert) + COMPREPLY=( $( compgen -W '0 15 30 60 120' -- "$cur" ) ) + return 0 + ;; + *) + COMPREPLY=( $( compgen -W '--daemonize --no-daemonize \ + --debug --detailed-exitcodes --disable --enable \ + --help --fqdn --logdest --onetime --serve --test \ + --noop --digest --fingerprint --version --verbose \ + --waitforcert --no-client' -- "$cur" ) ) + return 0 + esac + ;; + apply) + case $prev in + --logdest) + _puppet_logdest + return 0 + ;; + *) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version --debug \ + --verbose --execute --detailed-exitcodes \ + --logdest' -- "$cur" ) ) + else + _filedir + fi + return 0 + esac + ;; + cert) + case $prev in + --digest) + _puppet_digest + return 0 + ;; + *) + subcommand=$prev + COMPREPLY=( $( compgen -W '--digest --debug --verbose' \ + -- "$cur" ) ) + case $subcommand in + --generate) + _known_hosts_real "$cur" + return 0 + ;; + --clean|--fingerprint|--revoke|--verify) + COMPREPLY+=( $( compgen -W '--all' -- "$cur" ) ) + _puppet_certs --all + return 0 + ;; + --sign) + COMPREPLY+=( $( compgen -W '--all' -- "$cur" ) ) + _puppet_certs + return 0 + ;; + --list|--print) + COMPREPLY+=( $( compgen -W '--all' -- "$cur" ) ) + return 0 + ;; + *) + COMPREPLY=( $( compgen -W '--clean --generate \ + --help --list --print --fingerprint --revoke \ + --sign --version --verify' -- "$cur" ) ) + return 0 + esac + esac + ;; + describe) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --short --providers --list \ + --meta' -- "$cur" ) ) + else + _puppet_types + fi + return 0 + ;; + doc) + case $prev in + --outputdir) + _filedir -d + return 0 + ;; + --mode) + COMPREPLY=( $( compgen -W 'text trac pdf rdoc' -- "$cur" ) ) + return 0 + ;; + --reference) + _puppet_references + return 0 + ;; + *) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--all --help --outputdir \ + --mode --reference --charset --list' -- "$cur" ) ) + else + _filedir + fi + return 0 + esac + ;; + filebucket) + case $prev in + --server) + _known_hosts_real "$cur" + return 0 + ;; + --bucket) + _filedir -d + return 0 + ;; + *) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version --debug \ + --verbose --local --remote --server --bucket' \ + -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W 'backup get restore' \ + -- "$cur" ) ) + _filedir + fi + return 0 + esac + ;; + kick) + case $prev in + --class) + return 0 + ;; + --host) + _known_hosts_real "$cur" + return 0 + ;; + --tag) + return 0 + ;; + *) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--all --class --debug \ + --foreground --help --host --no-fqdn \ + --ignoreschedules --tag --test --ping' -- "$cur" ) ) + else + _known_hosts_real "$cur" + fi + return 0 + esac + ;; + master) + case $prev in + --logdest) + _puppet_logdest + return 0 + ;; + *) + COMPREPLY=( $( compgen -W '--daemonize --no-daemonize \ + --debug --help --logdest --verbose --version' \ + -- "$cur" ) ) + return 0 + esac + ;; + queue) + case $prev in + --logdest) + _puppet_logdest + return 0 + ;; + *) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version --debug \ + --verbose --execute --detailed-exitcodes \ + --logdest' -- "$cur" ) ) + else + _filedir + fi + return 0 + esac + ;; + resource|*) + COMPREPLY=( $( compgen -W '--help --version --debug --verbose' \ + -- "$cur" ) ) + return 0 + ;; + esac +} && +complete -F _puppet puppetmasterd puppetd puppetca ralsh puppetrun puppetqd filebucket puppetdoc puppet + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pwck b/completions/pwck new file mode 100644 index 00000000..0ed0debc --- /dev/null +++ b/completions/pwck @@ -0,0 +1,17 @@ +# pwck(8) completion -*- shell-script -*- + +_pwck() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + _filedir +} && +complete -F _pwck pwck + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pwdx b/completions/pwdx new file mode 100644 index 00000000..e91d9bf4 --- /dev/null +++ b/completions/pwdx @@ -0,0 +1,18 @@ +# pwdx(1) completion -*- shell-script -*- + +_pwdx() +{ + local cur prev words cword + _init_completion || return + + [[ $prev == -V ]] && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '-V' -- "$cur" ) ) + else + _pids + fi +} && +complete -F _pwdx pwdx + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/pwgen b/completions/pwgen new file mode 100644 index 00000000..3aa39a5c --- /dev/null +++ b/completions/pwgen @@ -0,0 +1,28 @@ +# pwgen(1) completion -*- shell-script -*- + +_pwgen() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -N|--num-passwords|-h|--help) + return + ;; + -H|--sha1) + _filedir + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi +} && +complete -F _pwgen pwgen + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/python b/completions/python index 17f96f50..969f3b93 100644 --- a/completions/python +++ b/completions/python @@ -1,12 +1,9 @@ -# bash completion for python +# bash completion for python -*- shell-script -*- -have python && _python() { - local prev cur i - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -'?'|-h|--help|-V|--version|-c|-m) @@ -22,15 +19,16 @@ _python() return 0 ;; !(?(*/)python*([0-9.])|-?)) - [[ $COMP_CWORD -lt 2 || ${COMP_WORDS[COMP_CWORD-2]} != -@(Q|W) ]] \ + [[ $cword -lt 2 || ${words[cword-2]} != -@(Q|W) ]] \ && _filedir ;; esac # if '-c' is already given, complete all kind of files. - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == -c ]]; then + local i + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${words[i]} == -c ]]; then _filedir fi done @@ -39,17 +37,11 @@ _python() if [[ "$cur" != -* ]]; then _filedir 'py?([co])' else - COMPREPLY=( $( compgen -W "$( _parse_help $1 -h )" -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) fi return 0 } && complete -F _python python python2 python3 -# 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/completions/qdbus b/completions/qdbus index 879df68d..5ed6bf89 100644 --- a/completions/qdbus +++ b/completions/qdbus @@ -1,23 +1,14 @@ -# Qt qdbus, dcop completion +# Qt qdbus, dcop completion -*- shell-script -*- -have qdbus || have dcop && _qdbus() { - local cur + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur - - [ -n "$cur" ] && unset COMP_WORDS[${#COMP_WORDS[@]}-1] - COMPREPLY=( $( compgen -W '$( command ${COMP_WORDS[@]} 2>/dev/null | \ + [ -n "$cur" ] && unset words[${#words[@]}-1] + COMPREPLY=( $( compgen -W '$( command ${words[@]} 2>/dev/null | \ sed s/\(.*\)// )' -- "$cur" ) ) } && complete -F _qdbus qdbus dcop -# 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/completions/qemu b/completions/qemu index 03fa5632..45a48b9b 100644 --- a/completions/qemu +++ b/completions/qemu @@ -1,12 +1,9 @@ -# bash completion for qemu +# bash completion for qemu -*- shell-script -*- -have qemu && _qemu() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -fd[ab]|-hd[abcd]|-cdrom|-option-rom|-kernel|-initrd|-bootp|-pidfile| \ @@ -103,30 +100,12 @@ _qemu() if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-M -fda -fdb -hda -hdb -hdc -hdd \ - -cdrom -boot -snapshot -no-fd-bootchk -m -smp -nographic -vnc \ - -k -audio-help -soundhw -localtime -full-screen -pidfile \ - -daemonize -win2k-hack -option-rom -usb -usbdevice -net -tftp \ - -smb -redir -kernel -append -initrd -serial -parallel -monitor \ - -s -p -S -d -hdachs -L -std-vga -no-acpi -no-reboot -loadvm \ - -semihosting -cpu -bt -vga -drive -startdate -name -curses \ - -no-frame -no-quit -bootp -echr -no-shutdown -icount -g \ - -prom-env -help -version -numa -mtdblock -sd -pflash \ - -device -uuid -alt-grab -sdl -portrait -rtc-td-hack -no-hpet \ - -balloon -acpitable -smbios -singlestep -gdb -hdachs -bios \ - -kernel-kqemu -enable-kqemu -enable-kvm -clock -watchdog \ - -watchdog-action -virtioconsole -show-cursor -tb-size -incoming \ - -chroot -runas' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help ) -fd{a,b} + -hd{a..d}' -- "$cur" ) ) else _filedir fi } && complete -F _qemu qemu -# 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/completions/qrunner b/completions/qrunner new file mode 100644 index 00000000..3fe5f810 --- /dev/null +++ b/completions/qrunner @@ -0,0 +1,18 @@ +# mailman qrunner completion -*- shell-script -*- + +_qrunner() +{ + local cur prev words cword split + _init_completion -s || return + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--runner --once \ + --list --verbose --subproc --help' -- "$cur" ) ) + fi + +} && +complete -F _qrunner qrunner + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/querybts b/completions/querybts new file mode 100644 index 00000000..a973f743 --- /dev/null +++ b/completions/querybts @@ -0,0 +1,35 @@ +# querybts completion -*- shell-script -*- + +_querybts() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -B|--bts) + COMPREPLY=( $( compgen -W "debian guug kde mandrake help" \ + -- "$cur" )) + return 0 + ;; + -u|--ui|--interface) + COMPREPLY=($( compgen -W "newt text gnome" -- "$cur" )) + return 0 + ;; + esac + + $split && return 0 + + COMPREPLY=($( compgen -W '-h --help -v --version -A --archive \ + -B --bts -l --ldap --no-ldap --proxy --http_proxy \ + -s --source -w --web -u --ui --interface \ + wnpp boot-floppies kernel bugs.debian.org \ + cdimage.debian.org general installation-reports \ + listarchives lists.debian.org mirrors nm.debian.org \ + press project qa.debian.org release-notes \ + security.debian.org tech-ctte upgrade-reports \ + www.debian.org' -- "$cur" ) \ + $( apt-cache pkgnames -- "$cur" 2> /dev/null) ) +} && +complete -F _querybts querybts + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/quota b/completions/quota new file mode 100644 index 00000000..626a3802 --- /dev/null +++ b/completions/quota @@ -0,0 +1,192 @@ +# bash completion for quota-tools -*- shell-script -*- + +_user_or_group() +{ + local i + + # complete on groups if -g was given + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -@(g|-group) ]]; then + COMPREPLY=( $( compgen -g -- "$cur" ) ) + return 0 + fi + done + + # otherwise complete on users + COMPREPLY=( $( compgen -u -- "$cur" ) ) +} + +_quota_parse_help() +{ + local opts=$( _parse_help "$1" ) + [[ $opts ]] || opts=$( _parse_usage "$1" ) # non-GNU? + COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace +} + +_quota_formats() +{ + COMPREPLY=( $( compgen -W 'vfsold vfsv0 rpc xfs' -- "$cur" ) ) +} + +_filesystems() +{ + # Only list filesystems starting with "/", otherwise we also get + #+ "binfmt_misc", "proc", "tmpfs", ... + COMPREPLY=( $( compgen -W "$(awk '/^\// {print $1}' /etc/mtab)" \ + -- "$cur" ) ) +} + +_quota() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -F|--format) + _quota_formats + return 0 + ;; + -h|--help|-V|--version) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + _quota_parse_help "$1" + else + _user_or_group + fi +} && +complete -F _quota -o default quota + +_setquota() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -F|--format) + _quota_formats + return 0 + ;; + -p|--prototype) + _user_or_group + return 0 + ;; + -h|--help|-V|--version) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + _quota_parse_help "$1" + else + local args + _count_args + + case $args in + 1) + _user_or_group + ;; + 2) + _filesystems + ;; + esac + + fi +} && +complete -F _setquota -o default setquota + +_edquota() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -F|--format) + _quota_formats + return 0 + ;; + -f|--filesystem) + _filesystems + return 0 + ;; + -p|--prototype) + _user_or_group + return 0 + ;; + -h|--help|-V|--version) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + _quota_parse_help "$1" + else + _user_or_group + fi +} && +complete -F _edquota -o default edquota + +_quotacheck() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -F|--format) + _quota_formats + return 0 + ;; + -h|--help|-V|--version) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + _quota_parse_help "$1" + else + _filesystems + fi +} && +complete -F _quotacheck -o default quotacheck repquota + +_quotaon() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -F|--format) + _quota_formats + return 0 + ;; + -x|--xfs-command) + COMPREPLY=( $( compgen -W 'delete enforce' -- "$cur" ) ) + return 0 + ;; + -h|--help|-V|--version) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + _quota_parse_help "$1" + else + _filesystems + fi +} && +complete -F _quotaon -o default quotaon quotaoff + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/quota-tools b/completions/quota-tools deleted file mode 100644 index 2b528d92..00000000 --- a/completions/quota-tools +++ /dev/null @@ -1,257 +0,0 @@ -# bash completion for quota-tools - -have quota && { -_user_or_group() -{ - local i - - # complete on groups if -g was given - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -g ]]; then - COMPREPLY=( $( compgen -g -- "$cur" ) ) - return 0 - fi - done - - # otherwise complete on users - COMPREPLY=( $( compgen -u -- "$cur" ) ) -} - -_quota_formats() -{ - COMPREPLY=( $( compgen -W 'vfsold vfsv0 rpc xfs' -- "$cur" ) ) -} - -_filesystems() -{ - # Only list filesystems starting with "/", otherwise we also get - #+ "binfmt_misc", "proc", "tmpfs", ... - COMPREPLY=( $( compgen -W "$(awk '/^\// {print $1}' /etc/mtab)" \ - -- "$cur" ) ) -} - -_quota() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--format) - _quota_formats - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-F --format -g --group -u --user -v \ - --verbose -s --human-readable -p --raw-grace -i --no-autofs -l \ - --local-only -A --all-nfs -m --no-mixed-pathnames -q --quiet -Q \ - --quiet-refuse -w --no-wrap' -- "$cur" ) ) - else - _user_or_group - fi -} -complete -F _quota -o default quota - -_setquota() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--format) - _quota_formats - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-r --remote -m --no-mixed-pathnames \ - -F --format -g --group -u --user -p --prototype -b --batch \ - -c --continue-batch -t --edit-period -T --edit-times -a --all' \ - -- "$cur" ) ) - else - _count_args - - case $args in - 1) - _user_or_group - ;; - 2) - _filesystems - ;; - esac - - fi -} -complete -F _setquota -o default setquota - -_edquota() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--format) - _quota_formats - return 0 - ;; - -f|--filesystem) - _filesystems - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-r --remote -m --no-mixed-pathnames \ - -g --group -u --user -p --prototype -F --format -f --filesystem \ - -t --edit-period -T --edit-times' -- "$cur" ) ) - else - _user_or_group - fi -} -complete -F _edquota -o default edquota - -_quotacheck() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--format) - _quota_formats - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-b --backup -v --verbose -d --debug \ - -g --group -u --user -c --create-files -f --force -i \ - --interactive -n --use-first-dquot -M --try-remount -m \ - --no-remount -R --exclude-root -F --format -a --all' -- "$cur" ) ) - else - _filesystems - fi -} -complete -F _quotacheck -o default quotacheck - -_repquota() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--format) - _quota_formats - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a --all -v --verbose -s --human-readable \ - -c --batch-translation -C --no-batch-translation -t \ - --truncate-names -n --no-names -p --raw-grace -i --no-autofs \ - -u --user -g --group -F --format' -- "$cur" ) ) - else - _filesystems - fi -} -complete -F _repquota -o default repquota - -_quotaon() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--format) - _quota_formats - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a --all -v --verbose -u --user \ - -g --group -f --off -p --print-state -F --format' -- "$cur" ) ) - else - _filesystems - fi -} -complete -F _quotaon -o default quotaon - -_quotaoff() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -F|--format) - _quota_formats - return 0 - ;; - -x|--xfs-command) - COMPREPLY=( $( compgen -W 'delete enforce' -- "$cur" ) ) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a --all -v --verbose -u --user \ - -g --group -p --print-state -x --xfs-command -F --format' \ - -- "$cur" ) ) - else - _filesystems - fi -} -complete -F _quotaoff -o default quotaoff -} - -# 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/completions/rcs b/completions/rcs index d859b8a9..a8eac85b 100644 --- a/completions/rcs +++ b/completions/rcs @@ -1,12 +1,11 @@ -# bash completion for rcs +# bash completion for rcs -*- shell-script -*- -have rcs && _rcs() { - local cur prev file dir i + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev + local file dir i file=${cur##*/} dir=${cur%/*} @@ -22,7 +21,7 @@ _rcs() COMPREPLY[$i]=$dir$file done - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -G "$dir/$file*,v" ) ) + COMPREPLY+=( $( compgen -G "$dir/$file*,v" ) ) for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do COMPREPLY[$i]=${COMPREPLY[$i]%,v} @@ -34,10 +33,4 @@ _rcs() } && complete -F _rcs ci co rlog rcs rcsdiff -# 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/completions/rdesktop b/completions/rdesktop index 7acf47a5..48a91750 100644 --- a/completions/rdesktop +++ b/completions/rdesktop @@ -1,22 +1,17 @@ -# bash completion for rdesktop +# bash completion for rdesktop -*- shell-script -*- -have rdesktop && _rdesktop() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion -n : || return case $prev in -k) COMPREPLY=( $( command ls \ /usr/share/rdesktop/keymaps 2>/dev/null | \ command grep -E -v '(common|modifiers)' ) ) - COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \ - $HOME/.rdesktop/keymaps 2>/dev/null ) ) - COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \ - ./keymaps 2>/dev/null ) ) + COMPREPLY+=( $( command ls $HOME/.rdesktop/keymaps 2>/dev/null ) ) + COMPREPLY+=( $( command ls ./keymaps 2>/dev/null ) ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) return 0 ;; @@ -25,22 +20,33 @@ _rdesktop() return 0 ;; -x) - COMPREPLY=( $( compgen -W 'b broadband m modem l lan' \ - -- $cur ) ) + COMPREPLY=( $( compgen -W 'broadband modem lan' -- "$cur" ) ) return 0 ;; -r) - # FIXME: should do -o nospace for the colon options - COMPREPLY=( $( compgen -W 'comport: disk: lptport: \ - printer: sound: lspci scard' -- "$cur" ) ) + case $cur in + sound:*) + COMPREPLY=( $( compgen -W 'local off remote' \ + -- "${cur#sound:}" ) ) + ;; + *:*) + ;; + *) + COMPREPLY=( $( compgen -W 'comport: disk: lptport: \ + printer: sound: lspci scard' -- "$cur" ) ) + [[ $COMPREPLY == *: ]] && compopt -o nospace + ;; + esac + return 0 + ;; + -u|-d|-s|-c|-p|-n|-g|-S|-T|-X) return 0 ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-u -d -s -c -p -n -k -g -f -b -L \ - -A -B -e -E -m -C -D -K -S -T -N -X -a -z -x -P -r \ - -0 -4 -5' -- "$cur" ) ) + local opts=( $( _parse_help "$1" ) ) + COMPREPLY=( $( compgen -W '${opts[@]%:}' -- "$cur" ) ) else _known_hosts_real "$cur" fi @@ -48,10 +54,4 @@ _rdesktop() } && complete -F _rdesktop rdesktop -# 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/completions/remove_members b/completions/remove_members new file mode 100644 index 00000000..4e459381 --- /dev/null +++ b/completions/remove_members @@ -0,0 +1,27 @@ +# mailman remove_members completion -*- shell-script -*- + +_remove_members() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -f|--file) + _filedir + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--file --all --fromall --nouserack \ + --noadminack --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _remove_members remove_members + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/removepkg b/completions/removepkg new file mode 100644 index 00000000..5b3d8273 --- /dev/null +++ b/completions/removepkg @@ -0,0 +1,19 @@ +# Slackware Linux removepkg completion -*- shell-script -*- + +_removepkg() +{ + local cur prev words cword + _init_completion || return + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-copy -keep -preserve -warn' \ + -- "$cur" ) ) + return 0 + fi + + local root=${ROOT:-/} + COMPREPLY=( $( cd "$root/var/log/packages" 2> /dev/null || return 1 ; \ + compgen -f -- "$cur" ) ) +} && +complete -F _removepkg removepkg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/renice b/completions/renice new file mode 100644 index 00000000..60968eef --- /dev/null +++ b/completions/renice @@ -0,0 +1,29 @@ +# renice(8) completion -*- shell-script -*- + +_renice() +{ + local cur prev words cword + _init_completion || return + + local command=$1 curopt i=0 + + # walk back through command line and find last option + while [[ $i -le $cword && ${#COMPREPLY[@]} -eq 0 ]]; do + curopt=${words[cword-$i]} + case "$curopt" in + -u) + _allowed_users + ;; + -g) + _pgids + ;; + -p|$command) + _pids + ;; + esac + i=$(( ++i )) + done +} && +complete -F _renice renice + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/reportbug b/completions/reportbug index 0c44bd68..aa5ac3e5 100644 --- a/completions/reportbug +++ b/completions/reportbug @@ -1,12 +1,9 @@ -# bash completion for (Debian) reportbug package +# bash completion for (Debian) reportbug -*- shell-script -*- -have reportbug && _reportbug() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -f|--filename|-i|--include|--mta|-o|--output) @@ -19,8 +16,8 @@ _reportbug() return 0 ;; -e|--editor|--mua) - COMP_WORDS=(COMP_WORDS[0] "$cur") - COMP_CWORD=1 + words=(words[0] "$cur") + cword=1 _command return 0 ;; @@ -86,47 +83,4 @@ _reportbug() } && complete -F _reportbug reportbug -have querybts && -_querybts() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -B|--bts) - COMPREPLY=( $( compgen -W "debian guug kde mandrake help" \ - -- "$cur" )) - return 0 - ;; - -u|--ui|--interface) - COMPREPLY=($( compgen -W "newt text gnome" -- "$cur" )) - return 0 - ;; - esac - - $split && return 0 - - COMPREPLY=($( compgen -W '-h --help -v --version -A --archive \ - -B --bts -l --ldap --no-ldap --proxy --http_proxy \ - -s --source -w --web -u --ui --interface \ - wnpp boot-floppies kernel bugs.debian.org \ - cdimage.debian.org general installation-reports \ - listarchives lists.debian.org mirrors nm.debian.org \ - press project qa.debian.org release-notes \ - security.debian.org tech-ctte upgrade-reports \ - www.debian.org' -- "$cur" ) \ - $( apt-cache pkgnames -- "$cur" 2> /dev/null) ) -} && -complete -F _querybts querybts - -# 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/completions/reptyr b/completions/reptyr new file mode 100644 index 00000000..3097daa9 --- /dev/null +++ b/completions/reptyr @@ -0,0 +1,23 @@ +# bash completion for reptyr(1) -*- shell-script -*- + +_reptyr() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -l) + return 0 + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + + [[ $prev != +([0-9]) ]] && _pids +} && +complete -F _reptyr reptyr + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/resolvconf b/completions/resolvconf index 9773696d..c2f1b42b 100644 --- a/completions/resolvconf +++ b/completions/resolvconf @@ -1,12 +1,9 @@ -# bash completion for resolvconf +# bash completion for resolvconf -*- shell-script -*- -have resolvconf && _resolvconf() { - local cur command - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -a|-d) @@ -21,10 +18,4 @@ _resolvconf() } && complete -F _resolvconf resolvconf -# 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/completions/rfkill b/completions/rfkill index 5c51ff9d..305f19d1 100644 --- a/completions/rfkill +++ b/completions/rfkill @@ -1,17 +1,14 @@ -# bash completion for rfkill +# bash completion for rfkill -*- shell-script -*- -have rfkill && _rfkill() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--version' -- "$cur" ) ) else - case $COMP_CWORD in + case $cword in 1) COMPREPLY=( $( compgen -W "help event list block unblock" \ -- "$cur" ) ) @@ -28,10 +25,4 @@ _rfkill() } && complete -F _rfkill rfkill -# 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/completions/ri b/completions/ri index be66d98f..70756325 100644 --- a/completions/ri +++ b/completions/ri @@ -1,6 +1,6 @@ -# ri completion for Ruby documentation by Ian Macdonald <ian@caliban.org> +# ri completion for Ruby documentation -*- shell-script -*- +# by Ian Macdonald <ian@caliban.org> -have ri && { ri_get_methods() { local regex @@ -14,15 +14,15 @@ ri_get_methods() regex=Class fi - COMPREPLY=( ${COMPREPLY[@]} \ + COMPREPLY+=( \ "$( ri ${classes[@]} 2>/dev/null | ruby -ane \ 'if /^'"$regex"' methods:/.../^------------------|^$/ and \ /^ / then print $_.split(/, |,$/).grep(/^[^\[]*$/).join("\n"); \ - end' | sort -u )" ) + end' 2>/dev/null | sort -u )" ) else # older versions of ri didn't distinguish between class/module and # instance methods - COMPREPLY=( ${COMPREPLY[@]} \ + COMPREPLY+=( \ "$( ruby -W0 $ri_path ${classes[@]} | ruby -ane \ 'if /^-/.../^-/ and ! /^-/ and ! /^ +(class|module): / then \ print $_.split(/, |,$| +/).grep(/^[^\[]*$/).join("\n"); \ @@ -34,11 +34,11 @@ ri_get_methods() # needs at least Ruby 1.8.0 in order to use -W0 _ri() { - local cur class method prefix ri_path ri_version separator IFS - local -a classes + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur + local class method prefix ri_path ri_version separator IFS + local -a classes ri_path=$(type -p ri) # which version of ri are we using? @@ -62,8 +62,8 @@ _ri() if [ "$ri_version" = integrated ]; then # integrated ri from Ruby 1.9 - classes=( $( ri -c | ruby -ne 'if /^\s*$/..$stdin.eof then \ - if /, [A-Z]+/ then print; end; end' ) ) + classes=( $( ri -c 2>/dev/null | ruby -ne 'if /^\s*$/..$stdin.eof then \ + if /, [A-Z]+/ then print; end; end' 2>/dev/null ) ) elif [ "$ri_version" = "ri 1.8a" ]; then classes=( $( ruby -W0 $ri_path | \ ruby -ne 'if /^'"'"'ri'"'"' has/..$stdin.eof then \ @@ -83,14 +83,7 @@ _ri() # we're completing on methods method=$cur ri_get_methods -} +} && complete -F _ri ri -} -# 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/completions/rmlist b/completions/rmlist new file mode 100644 index 00000000..dd31333c --- /dev/null +++ b/completions/rmlist @@ -0,0 +1,17 @@ +# mailman rmlist completion -*- shell-script -*- + +_rmlist() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--archives --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _rmlist rmlist + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/rmmod b/completions/rmmod new file mode 100644 index 00000000..3b266067 --- /dev/null +++ b/completions/rmmod @@ -0,0 +1,14 @@ +# Linux rmmod(8) completion. -*- shell-script -*- +# This completes on a list of all currently installed kernel modules. + +_rmmod() +{ + local cur prev words cword + _init_completion || return + + _installed_modules "$cur" + return 0 +} && +complete -F _rmmod rmmod + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/route b/completions/route new file mode 100644 index 00000000..14fc2599 --- /dev/null +++ b/completions/route @@ -0,0 +1,30 @@ +# Linux route(8) completion -*- shell-script -*- + +[[ $OSTYPE == *linux* ]] || return 1 + +_route() +{ + local cur prev words cword + _init_completion || return + + if [ "$prev" = dev ]; then + _available_interfaces + return 0 + fi + + # Remove already given options from completions + local opt found i + for opt in add del -host -net netmask metric mss window irtt reject mod \ + dyn reinstate dev default gw; do + found=false + for (( i=1; i < ${#words[@]}-1; i++ )); do + [ "${words[i]}" = "$opt" ] && found=true && break + done + $found || COMPREPLY[${#COMPREPLY[@]}]="$opt" + done + + COMPREPLY=( $( compgen -W '"${COMPREPLY[@]}"' -- "$cur" ) ) +} && +complete -F _route route + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/rpcdebug b/completions/rpcdebug index be2a8709..6d4acf52 100644 --- a/completions/rpcdebug +++ b/completions/rpcdebug @@ -1,30 +1,26 @@ -# bash completion for rpcdebug +# bash completion for rpcdebug -*- shell-script -*- -have rpcdebug && { _rpcdebug_flags() { local i module - for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do - if [[ ${COMP_WORDS[i]} == -m ]]; then - module=${COMP_WORDS[i+1]} + for (( i=0; i < ${#words[@]}; i++ )); do + if [[ ${words[i]} == -m ]]; then + module=${words[i+1]} fi done if [ -n "$module" ]; then - COMPREPLY=( $( compgen -W "$(rpcdebug -vh 2>&1 \ - | command grep '^'$module' '\ - | awk '{$1 = ""; print $0}')" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$( rpcdebug -vh 2>&1 | \ + sed -ne 's/^'$module'[[:space:]]\{1,\}//p' )" -- "$cur" ) ) fi } _rpcdebug() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -s) @@ -42,16 +38,10 @@ _rpcdebug() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-v -h -m -s -c' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" -h ) -s -c' \ + -- "$cur" ) ) fi -} +} && complete -F _rpcdebug rpcdebug -} -# 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/completions/rpm b/completions/rpm index bbab0368..c7e67705 100644 --- a/completions/rpm +++ b/completions/rpm @@ -1,12 +1,9 @@ -# bash completion for rpm +# bash completion for rpm -*- shell-script -*- -have rpm && { # helper functions _rpm_installed_packages() { - local nodig="$1" nosig="$2" - if [[ -r /var/log/rpmpkgs && \ /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]]; then # using RHL 7.2 or later - this is quicker than querying the DB @@ -17,73 +14,56 @@ _rpm_installed_packages() # SUSE's rpmqpack is faster than rpm -qa COMPREPLY=( $( compgen -W '$( rpmqpack )' -- "$cur" ) ) else - _rpm_nodigsig - COMPREPLY=( $( rpm -qa $nodig $nosig --qf='%{NAME} ' "$cur*" ) ) + COMPREPLY=( $( ${1:-rpm} -qa --nodigest --nosignature \ + --queryformat='%{NAME} ' "$cur*" 2>/dev/null ) ) fi } _rpm_groups() { local IFS=$'\n' - COMPREPLY=( $( compgen -W "$( rpm -qa $nodig $nosig --queryformat \ - '%{group}\n' )" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$( ${1:-rpm} -qa --nodigest --nosignature \ + --queryformat='%{GROUP}\n' 2>/dev/null )" -- "$cur" ) ) } -_rpm_nodigsig() +_rpm_macros() { - if [[ -z "$nodig" && -z "$nosig" ]]; then - local rpmver - - rpmver=$(rpm --version) - rpmver=${rpmver##* } + # get a list of macros + COMPREPLY=( $( compgen -W "$( ${1:-rpm} --showrc | sed -ne \ + 's/^-\{0,1\}[0-9]\{1,\}[:=][[:space:]]\{1,\}\([^[:space:](]\{3,\}\).*/%\1/p' )" \ + -- "$cur" ) ) +} - if [[ "$rpmver" > "4.0.4" ]]; then - nodig="--nodigest" - fi - if [[ "$rpmver" > "4.0.99" ]]; then - nosig="--nosignature" - fi - fi +_rpm_buildarchs() +{ + COMPREPLY=( $( compgen -W "$( ${1:-rpm} --showrc | sed -ne \ + 's/^\s*compatible\s\s*build\s\s*archs\s*:\s*\(.*\)/\1/ p' )" \ + -- "$cur" ) ) } # rpm(8) completion # _rpm() { - local cur prev opts nodig nosig + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur prev - nodig="" - nosig="" - _rpm_nodigsig - - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then # first parameter on line case $cur in - -b*) - COMPREPLY=( $( compgen -W '-ba -bb -bc -bi -bl -bp -bs' \ - -- "$cur" ) ) - ;; - -t*) - COMPREPLY=( $( compgen -W '-ta -tb -tc -ti -tl -tp -ts' \ - -- "$cur" ) ) - ;; --*) COMPREPLY=( $( compgen -W '--help --version --initdb \ - --checksig --recompile --rebuild --resign --addsign \ - --rebuilddb --showrc --setperms --setugids --tarbuild \ - --eval --install --upgrade --query --freshen --erase \ - --verify --querytags --rmsource --rmspec --clean \ - --import' -- "$cur" ) ) + --checksig --resign --addsign --rebuilddb --showrc \ + --setperms --setugids --eval --install --upgrade --query \ + --freshen --erase --verify --querytags --import' \ + -- "$cur" ) ) ;; *) - COMPREPLY=( $( compgen -W '-b -e -E -F -i -q -t -U -V' \ + COMPREPLY=( $( compgen -W '-e -E -F -i -q -t -U -V' \ -- "$cur" ) ) ;; esac - - return 0 + return 0 fi case $prev in @@ -92,14 +72,11 @@ _rpm() return 0 ;; --eval|-E) - # get a list of macros - COMPREPLY=( $( compgen -W "$( rpm --showrc | sed -ne \ - 's/^-\{0,1\}[0-9]\{1,\}[:=][[:space:]]\{1,\}\([^[:space:](]\{3,\}\).*/%\1/p' )" \ - -- "$cur" ) ) + _rpm_macros $1 return 0 ;; --pipe) - _compopt_o_filenames + compopt -o filenames COMPREPLY=( $( compgen -c -- "$cur" ) ) return 0 ;; @@ -118,8 +95,9 @@ _rpm() else # complete on capabilities local IFS=$'\n' - COMPREPLY=( $( compgen -W "$( rpm -qa $nodig $nosig \ - --queryformat='%{providename}\n' )" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$( $1 -qa --nodigest --nosignature \ + --queryformat='%{PROVIDENAME}\n' 2>/dev/null )" \ + -- "$cur" ) ) fi return 0 ;; @@ -129,37 +107,34 @@ _rpm() else # complete on capabilities local IFS=$'\n' - COMPREPLY=( $( compgen -W "$( rpm -qa $nodig $nosig \ - --queryformat='%{requirename}\n' )" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$( $1 -qa --nodigest --nosignature \ + --queryformat='%{REQUIRENAME}\n' 2>/dev/null )" \ + -- "$cur" ) ) fi return 0 ;; - --target) - COMPREPLY=( $( compgen -W "$( command rpm --showrc | sed -ne \ - 's/^\s*compatible\s\s*build\s\s*archs\s*:\s*\(.*\)/\1/ p' )" \ - -- "$cur" ) ) - return 0 - ;; --define|-D|--fileid|--hdrid|--pkgid) # argument required but no completions available return 0 ;; esac + $split && return 0 + # options common to all modes - opts="--define --eval --macros --nodigest --nosignature --rcfile \ - --quiet --pipe --verbose" + local opts="--define= --eval= --macros= --nodigest --nosignature \ + --rcfile= --quiet --pipe --verbose" - case ${COMP_WORDS[1]} in + case ${words[1]} in -[iFU]*|--install|--freshen|--upgrade) if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W "$opts --percent --force \ --test --replacepkgs --replacefiles --root \ --excludedocs --includedocs --noscripts --ignorearch \ - --dbpath --prefix --ignoreos --nodeps --allfiles \ + --dbpath --prefix= --ignoreos --nodeps --allfiles \ --ftpproxy --ftpport --justdb --httpproxy --httpport \ - --noorder --relocate --badreloc --notriggers \ - --excludepath --ignoresize --oldpackage \ + --noorder --relocate= --badreloc --notriggers \ + --excludepath= --ignoresize --oldpackage \ --queryformat --repackage --nosuggests" -- "$cur" ) ) else _filedir '[rs]pm' @@ -171,18 +146,18 @@ _rpm() --noscripts --notriggers --nodeps --test --repackage" \ -- "$cur" ) ) else - _rpm_installed_packages "$nodig" "$nosig" + _rpm_installed_packages $1 fi ;; -q*|--query) # options common to all query types - opts="$opts --changelog --configfiles --conflicts --docfiles + opts+=" --changelog --configfiles --conflicts --docfiles --dump --enhances --filesbypkg --filecaps --fileclass --filecolor --fileprovide --filerequire --filesbypkg --info - --list --obsoletes --pipe --provides --queryformat --rcfile + --list --obsoletes --pipe --provides --queryformat= --requires --scripts --suggests --triggers --xml" - if [[ $COMP_LINE == *\ -@(*([^ -])f|-file )* ]]; then + if [[ ${words[@]} == *\ -@(*([^ -])f|-file )* ]]; then # -qf completion if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W "$opts --dbpath --fscontext \ @@ -190,10 +165,10 @@ _rpm() else _filedir fi - elif [[ $COMP_LINE == *\ -@(*([^ -])g|-group )* ]]; then + elif [[ ${words[@]} == *\ -@(*([^ -])g|-group )* ]]; then # -qg completion - _rpm_groups - elif [[ $COMP_LINE == *\ -@(*([^ -])p|-package )* ]]; then + _rpm_groups $1 + elif [[ ${words[@]} == *\ -@(*([^ -])p|-package )* ]]; then # -qp; uninstalled package completion if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W "$opts --ftpport --ftpproxy \ @@ -206,11 +181,11 @@ _rpm() if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W "$opts --all --file --fileid --dbpath --fscontext --ftswalk --group --hdrid --last - --package --pkgid --root --specfile --state + --package --pkgid --root= --specfile --state --triggeredby --whatprovides --whatrequires" \ -- "$cur" ) ) - elif [[ $COMP_LINE != *\ -@(*([^ -])a|-all )* ]]; then - _rpm_installed_packages "$nodig" "$nosig" + elif [[ ${words[@]} != *\ -@(*([^ -])a|-all )* ]]; then + _rpm_installed_packages $1 fi fi ;; @@ -224,86 +199,107 @@ _rpm() ;; -[Vy]*|--verify) if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W "$opts --root --dbpath --nodeps \ + COMPREPLY=( $( compgen -W "$opts --root= --dbpath --nodeps \ --nogroup --nolinkto --nomode --nomtime --nordev --nouser \ --nofiles --noscripts --nomd5 --querytags --specfile \ --whatrequires --whatprovides" -- "$cur" ) ) # check whether we're doing file completion - elif [[ $COMP_LINE == *\ -@(*([^ -])f|-file )* ]]; then + elif [[ ${words[@]} == *\ -@(*([^ -])f|-file )* ]]; then _filedir - elif [[ $COMP_LINE == *\ -@(*([^ -])g|-group )* ]]; then - _rpm_groups - elif [[ $COMP_LINE == *\ -@(*([^ -])p|-package )* ]]; then + elif [[ ${words[@]} == *\ -@(*([^ -])g|-group )* ]]; then + _rpm_groups $1 + elif [[ ${words[@]} == *\ -@(*([^ -])p|-package )* ]]; then _filedir '[rs]pm' else - _rpm_installed_packages "$nodig" "$nosig" - fi - ;; - -[bt]*) - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W "$opts --short-circuit --timecheck \ - --clean --rmsource --rmspec --test --sign --buildroot \ - --target --nobuild --nodeps --nodirtokens" -- "$cur" ) ) - elif [[ ${COMP_WORDS[1]} == -b* ]]; then - _filedir spec - else - _filedir '@(t?(ar.)@([gx]z|bz?(2))|tar?(.@(lzma|Z)))' + _rpm_installed_packages $1 fi ;; - --rebuild|--recompile) - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W "$opts --nodeps --rmsource \ - --rmspec --sign --nodirtokens --target" -- "$cur" ) ) - else - _filedir '@(?(no)src.r|s)pm' - fi - ;; - --tarbuild) - _filedir '@(t?(ar.)@([gx]z|bz?(2))|tar?(.@(lzma|Z)))' - ;; --resign|--addsign) _filedir '[rs]pm' ;; --setperms|--setgids) - _rpm_installed_packages "$nodig" "$nosig" - ;; - --clean|--rmsource|--rmspec) - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--clean --rmsource --rmspec' \ - -- "$cur" ) ) - else - _filedir spec - fi + _rpm_installed_packages $1 ;; --import|--dbpath|--root) if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--import --dbpath --root' \ + COMPREPLY=( $( compgen -W '--import --dbpath --root=' \ -- "$cur" ) ) else _filedir fi ;; esac + [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 -} -complete -F _rpm rpm rpmbuild -} +} && +complete -F _rpm rpm -have gendiff && -_gendiff() +_rpmbuild() { - COMPREPLY=() - local cur cword - _get_comp_words_by_ref cur cword - [[ $cword != 1 ]] || _filedir -d + local cur prev words cword split + _init_completion -s || return + + local rpm="${1%build*}" + [[ $rpm == $1 ]] || ! type $rpm &>/dev/null && rpm= + + case $prev in + --buildroot|--root|-r|--dbpath) + _filedir -d + return 0 + ;; + --target) + _rpm_buildarchs + return 0 + ;; + --eval|-E) + _rpm_macros $rpm + return 0 + ;; + --macros|--rcfile) + _filedir + return 0 + ;; + --buildpolicy) + local cfgdir=$( $rpm --eval '%{_rpmconfigdir}' 2>/dev/null ) + if [[ $cfgdir ]]; then + COMPREPLY=( $( compgen -W "$( command ls $cfgdir 2>/dev/null \ + | sed -ne 's/^brp-//p' )" -- "$cur" ) ) + fi + ;; + --define|-D|--with|--without) + return 0 + ;; + esac + + $split && return 0 + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W "$( _parse_help "$1" )" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + # Figure out file extensions to complete + local word ext + for word in ${words[@]}; do + case $word in + -b?) + ext=spec + break + ;; + -t?|--tarbuild) + ext='@(t?(ar.)@([gx]z|bz?(2))|tar?(.@(lzma|Z)))' + break + ;; + --rebuild|--recompile) + ext='@(?(no)src.r|s)pm' + break + ;; + esac + done + [[ -n $ext ]] && _filedir $ext } && -complete -F _gendiff gendiff +complete -F _rpmbuild rpmbuild rpmbuild-md5 -# 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/completions/rpm2tgz b/completions/rpm2tgz new file mode 100644 index 00000000..0b4510c7 --- /dev/null +++ b/completions/rpm2tgz @@ -0,0 +1,16 @@ +# Slackware rpm2tgz completion -*- shell-script -*- + +_rpm2tgz() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-s -S -n -r -d -c' -- "$cur" ) ) + return 0 + fi + + COMPREPLY=( $(compgen -f -X "!*.rpm" -- "$cur") ) +} && complete -F _rpm2tgz -o plusdirs rpm2tgz rpm2txz rpm2targz + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/rpmcheck b/completions/rpmcheck index 5d9aada7..5c3d16f0 100644 --- a/completions/rpmcheck +++ b/completions/rpmcheck @@ -1,12 +1,9 @@ -# bash completion for rpmcheck +# bash completion for rpmcheck -*- shell-script -*- -have rpmcheck && _rpmcheck() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -base) @@ -22,12 +19,6 @@ _rpmcheck() _filedir fi } && -complete -F _rpmcheck rpmcheck $files +complete -F _rpmcheck rpmcheck -# 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/completions/rrdtool b/completions/rrdtool index 0b15a23f..9280d8f5 100644 --- a/completions/rrdtool +++ b/completions/rrdtool @@ -1,20 +1,17 @@ -# bash completion for rrdtool +# bash completion for rrdtool -*- shell-script -*- -have rrdtool && _rrdtool () { - local cur - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return - COMPREPLY=( $( compgen -W 'create update updatev graph dump restore last \ - lastupdate first info fetch tune resize xport' -- "$cur" ) ) + if [ ${#words[@]} -eq 2 ]; then + COMPREPLY=( $( compgen -W 'create update updatev graph dump restore \ + last lastupdate first info fetch tune resize xport' -- "$cur" ) ) + else + _filedir rrd + fi } && complete -F _rrdtool rrdtool -# 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/completions/rsync b/completions/rsync index b0f2d106..e8b75b1a 100644 --- a/completions/rsync +++ b/completions/rsync @@ -1,40 +1,44 @@ -# bash completion for rsync +# bash completion for rsync -*- shell-script -*- -have rsync && _rsync() { - # TODO: _split_longopt - - COMPREPLY=() - local cur prev - _get_comp_words_by_ref -n : cur prev + local cur prev words cword split + _init_completion -s -n : || return _expand || return 0 case $prev in - --config|--password-file|--include-from|--exclude-from) + --config|--password-file|--include-from|--exclude-from|--files-from|\ + --log-file|--write-batch|--only-write-batch|--read-batch) + compopt +o nospace _filedir return 0 ;; - -T|--temp-dir|--compare-dest) + -T|--temp-dir|--compare-dest|--backup-dir|--partial-dir|--copy-dest|\ + --link-dest) + compopt +o nospace _filedir -d return 0 ;; -e|--rsh) + compopt +o nospace COMPREPLY=( $( compgen -W 'rsh ssh' -- "$cur" ) ) return 0 ;; --compress-level) - COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) ) + compopt +o nospace + COMPREPLY=( $( compgen -W '{1..9}' -- "$cur" ) ) return 0 ;; esac + $split && return 0 + case $cur in -*) COMPREPLY=( $( compgen -W '--verbose --quiet --no-motd --checksum \ --archive --recursive --relative --no-implied-dirs \ - --backup --backup-dir --suffix= --update --inplace --append \ + --backup --backup-dir= --suffix= --update --inplace --append \ --append-verify --dirs --old-dirs --links --copy-links \ --copy-unsafe-links --safe-links --copy-dirlinks \ --keep-dirlinks --hard-links --perms --executability --chmod= \ @@ -59,23 +63,22 @@ _rsync() --write-batch= --only-write-batch= --read-batch= --protocol= \ --iconv= --ipv4 --ipv6 --version --help --daemon --config= \ --no-detach' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] || compopt +o nospace ;; *:*) - if type _scp_remote_files &>/dev/null; then - # find which remote shell is used - local i shell=ssh - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -@(e|-rsh) ]]; then - shell=${COMP_WORDS[i+1]} - break - fi - done - [ "$shell" = ssh ] && _scp_remote_files - fi + # find which remote shell is used + local i shell=ssh + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == -@(e|-rsh) ]]; then + shell=${words[i+1]} + break + fi + done + [ "$shell" = ssh ] && _xfunc ssh _scp_remote_files ;; *) _known_hosts_real -c -a "$cur" - type _scp_local_files &>/dev/null && _scp_local_files || _filedir + _xfunc ssh _scp_local_files ;; esac @@ -83,10 +86,4 @@ _rsync() } && complete -F _rsync -o nospace rsync -# 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/completions/rtcwake b/completions/rtcwake index c95c1d76..f276c1be 100644 --- a/completions/rtcwake +++ b/completions/rtcwake @@ -1,13 +1,9 @@ -# bash completion for rtcwake +# bash completion for rtcwake -*- shell-script -*- -have rtcwake && _rtcwake() { - COMPREPLY=() - local cur prev split=false - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case "$prev" in --help|-h|--version|-V|--seconds|-s|--time|-t) @@ -26,15 +22,8 @@ _rtcwake() $split && return 0 - COMPREPLY=( $( compgen -W '--device --local --mode --seconds --time --utc \ - --verbose --version --help' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) } && complete -F _rtcwake rtcwake -# 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/completions/samba b/completions/samba deleted file mode 100644 index 61d78abc..00000000 --- a/completions/samba +++ /dev/null @@ -1,298 +0,0 @@ -# bash completion for samba - -have smbclient && { -_samba_resolve_order() -{ - COMPREPLY=( $( compgen -W 'lmhosts host wins bcast' -- "$cur" ) ) -} - -_samba_domains() -{ - if [ -n "${COMP_SAMBA_SCAN:-}" ]; then - COMPREPLY=( $( compgen -W '$( smbtree -N -D )' -- "$cur" ) ) - fi -} - -_samba_hosts() -{ - if [ -n "${COMP_SAMBA_SCAN:-}" ]; then - COMPREPLY=( $( compgen -W "$( smbtree -N -S | \ - sed -ne 's/^[[:space:]]*\\\\*\([^[:space:]]*\).*/\1/p' \ - )" -- $cur ) ) - fi -} - -_samba_debuglevel() -{ - COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9 10' -- "$cur" ) ) -} - -_smbclient() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -R) - _samba_resolve_order - return 0; - ;; - -t) - COMPREPLY=( $( compgen -W 'SJIS EUC JIS7 JIS8 JUNET HEX CAP' \ - -- "$cur" ) ) - return 0; - ;; - -s|-A|--authentication-file) - _filedir - return 0; - ;; - -l|--log-basename|-D) - _filedir -d - return 0; - ;; - -O) - COMPREPLY=( $( compgen -W 'SO_KEEPALIVE SO_REUSEADDR \ - SO_BROADCAST TCP_NODELAY IPTOS_LOWDELAY \ - IPTOS_THROUGHPUT SO_SNDBUF SO_RCVBUF \ - SO_SNDLOWAT SO_RCVLOWAT' -- "$cur" ) ) - return 0; - ;; - -T) - COMPREPLY=( $( compgen -W 'c x I X F b g q r N a' -- "$cur" ) ) - return 0; - ;; - -W|--workgroup) - _samba_domains - return 0; - ;; - -d|--debuglevel) - _samba_debuglevel - return 0 - ;; - -p|--port|-M|-I|-b|-U|--user|-n|-i|-T|-c) - # argument required but no completions available - return 0 - ;; - -\?|--help|-V|--version) - # all other arguments are noop with these - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-b -d -L -U -I -M -m -A -N -i -O \ - -p -R -s -k -P -c -D -W -l -E --debuglevel \ - --log-basename --workgroup' -- "$cur" ) ) - fi -} -complete -F _smbclient smbclient - -_smbget() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -o|-f|--outputfile|--rcfile) - _filedir - return 0; - ;; - -d|--debuglevel) - _samba_debuglevel - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a --guest -r --resume -R --recursive -u \ - --username -p --password -w --workgroup -n --nonprompt -d \ - --debuglevel -D --dots -P --keep-permissions -o --outputfile -f \ - --rcfile -q --quiet -v --verbose -b --blocksize -? --help --usage' \ - -- "$cur" ) ) - fi -} -complete -F _smbget smbget - -_smbcacls() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -s) - _filedir - return 0; - ;; - -l|--log-basename) - _filedir -d - return 0; - ;; - -d|--debuglevel) - _samba_debuglevel - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -M -D -S -U -C -G --numeric -t \ - -h --help -V -s -d --debuglevel -l --log-basename' -- "$cur" ) ) - fi -} -complete -F _smbcacls smbcacls - -_smbcquotas() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -s|-A|--authentication-file) - _filedir - return 0; - ;; - -l|--log-basename) - _filedir -d - return 0; - ;; - -d|--debuglevel) - _samba_debuglevel - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-u -L -F -S -n -t -v -h --help -V \ - -s --debuglevel --log-basename -N -k \ - --authentication-file --user' -- "$cur" ) ) - fi -} -complete -F _smbcquotas smbcquotas - -_smbpasswd() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -r) - _samba_hosts - return 0; - ;; - -R) - _samba_resolve_order - return 0; - ;; - -c) - _filedir - return 0; - ;; - -D) - _samba_debuglevel - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -c -x -d -e -D -n -r -R -m -U -h \ - -s -w -W -i -L' -- "$cur" ) ) - fi -} -complete -F _smbpasswd smbpasswd - -_smbtar() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -r|-t) - _filedir tar - return 0; - ;; - -s) - _samba_hosts - return 0; - ;; - -l) - _samba_debuglevel - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-r -i -a -v -s -p -x -X -N -b -d -l -u -t' \ - -- "$cur" ) ) - fi -} -complete -F _smbtar smbtar - -_smbtree() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -s|-A|--authentication-file) - _filedir - return 0; - ;; - -l|--log-basename) - _filedir -d - return 0; - ;; - -d|--debuglevel) - _samba_debuglevel - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-b -D -S -V -s -d --debuglevel -l \ - --log-basename -N -k -A --authentication-file -U --user\ - -h --help' -- "$cur" ) ) - fi -} -complete -F _smbtree smbtree -} - -# 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/completions/sbcl b/completions/sbcl index 33671a6e..28cb9d80 100644 --- a/completions/sbcl +++ b/completions/sbcl @@ -1,13 +1,11 @@ +# -*- shell-script -*- # bash programmable completion for various Common Lisp implementations by # Nikodemus Siivola <nikodemus@random-state.net> -have sbcl || have sbcl-mt && _sbcl() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return # completing an option (may or may not be separated by a space) if [[ "$cur" == -* ]]; then @@ -22,10 +20,4 @@ _sbcl() } && complete -F _sbcl sbcl sbcl-mt -# 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/completions/sbopkg b/completions/sbopkg new file mode 100644 index 00000000..647355b0 --- /dev/null +++ b/completions/sbopkg @@ -0,0 +1,74 @@ +# bash completion for sbopkg tool -*- shell-script -*- + +_sbopkg() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l \ + -o -P -p -q -R -r -s -u -V -v' -- "$cur" ) ) + return 0 + fi + + case "$prev" in + -e) + COMPREPLY=( $( compgen -W 'ask continue stop' -- "$cur" ) ) + return 0 + ;; + -f) + _filedir + return 0 + ;; + -d) + _filedir -d + return 0 + ;; + -V) + COMPREPLY=( $( compgen -W "? \ + $(sbopkg -V ? 2>&1 | cut -s -f1)" -- "$cur" ) ) + return 0 + ;; + -i|-b) + ;; + *) + return 0 + ;; + esac + + local i config + config="/etc/sbopkg/sbopkg.conf" + for (( i=${#words[@]}-1; i>0; i-- )); do + if [[ "${words[i]}" == -f ]]; then + config="${words[i+1]}" + break + fi + done + + if [ ! -r "$config" ]; then + return 0 + fi + + . $config + + for (( i=1; i<${#words[@]}; i++ )); do + case "${words[i]}" in + -V) + REPO_NAME="${words[i+1]%%/*}" + REPO_BRANCH="${words[i+1]#*/}" + ;; + -d) + REPO_ROOT="${words[i+1]}" + ;; + esac + done + + if [ ! -r "$REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT" ]; then + return 0 + fi + COMPREPLY=( $( sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}"\ + $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ) + $( cd $QUEUEDIR; compgen -f -X "!*.sqf" -- "$cur" ) ) +} && complete -F _sbopkg sbopkg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/screen b/completions/screen index 952d9766..7132d064 100644 --- a/completions/screen +++ b/completions/screen @@ -1,18 +1,29 @@ -# bash completion for screen +# bash completion for screen -*- shell-script -*- -have screen && _screen_sessions() { - COMPREPLY=( $( compgen -W "$( command screen -ls | sed -ne \ - 's|^\t\{1,\}\([0-9]\{1,\}\.[^\t]\{1,\}\).*'"$1"'.*$|\1|p' )" \ - -- "$cur" ) ) + local sessions=( $( command screen -ls | sed -ne \ + 's|^\t\{1,\}\([0-9]\{1,\}\.[^\t]\{1,\}\).*'"$1"'.*$|\1|p' ) ) + if [[ $cur == +([0-9])?(.*) ]]; then + # Complete sessions including pid prefixes + COMPREPLY=( $( compgen -W '${sessions[@]}' -- "$cur" ) ) + else + # Create unique completions, dropping pids where possible + local -A res + local i tmp + for i in ${sessions[@]}; do + res[${i/#+([0-9])./}]+=" $i" + done + for i in ${!res[@]}; do + [[ ${res[$i]} == \ *\ * ]] && tmp+=" ${res[$i]}" || tmp+=" $i" + done + COMPREPLY=( $( compgen -W '$tmp' -- "$cur" ) ) + fi } && _screen() { local cur prev words cword - - COMPREPLY=() - _get_comp_words_by_ref cur prev words cword + _init_completion || return if ((cword > 2)); then case ${words[cword-2]} in @@ -23,6 +34,22 @@ _screen() esac fi + local i + for (( i=1; i <= cword; i++ )); do + case ${words[i]} in + -r|-R|-d|-D|-x|-s|-c|-T|-e|-h|-p|-S|-t) + (( i++ )) + continue + ;; + -*) + continue + ;; + esac + + _command_offset $i + return + done + case $prev in -[rR]) # list detached @@ -47,20 +74,21 @@ _screen() _filedir return 0 ;; + -T) + _terms + return 0 + ;; + -e|-h|-p|-S|-t) + return 0 + ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-a -A -c -d -D -e -f -fn -fa -h -i -ln \ - -list -L -m -O -p -q -r -R -s -S -t -U -v -wipe -x -X --help \ + -list -L -m -O -p -q -r -R -s -S -t -T -U -v -wipe -x -X --help \ --version' -- "$cur" ) ) fi } && -complete -F _screen -o default screen +complete -F _screen screen -# 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/completions/service b/completions/service index 1a36f59b..f008770e 100644 --- a/completions/service +++ b/completions/service @@ -1,47 +1,34 @@ -# service(8) and /etc/init.d/* completion +# service(8) and /etc/init.d/* completion -*- shell-script -*- # This completes on a list of all available service scripts for the # 'service' command and/or the SysV init.d directory, followed by # that script's available commands -# -{ have service || [ -d /etc/init.d/ ]; } && + _service() { - local cur prev sysvdir - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - # don't complete for things like killall, ssh and mysql if it's - # the standalone command, rather than the init script - [[ ${COMP_WORDS[0]} != @(*init.d/!(functions|~)|service) ]] && return 0 + local cur prev words cword + _init_completion || return # don't complete past 2nd token - [ $COMP_CWORD -gt 2 ] && return 0 + [ $cword -gt 2 ] && return 0 - if [[ $COMP_CWORD -eq 1 && $prev == "service" ]]; then + if [[ $cword -eq 1 && $prev == ?(*/)service ]]; then _services else + local sysvdir [ -d /etc/rc.d/init.d ] && \ sysvdir=/etc/rc.d/init.d || sysvdir=/etc/init.d COMPREPLY=( $( compgen -W '`sed -e "y/|/ /" \ -ne "s/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p" \ - $sysvdir/${prev##*/} 2>/dev/null`' -- "$cur" ) ) + $sysvdir/${prev##*/} 2>/dev/null` start stop' -- "$cur" ) ) fi return 0 } && complete -F _service service -for svc in /etc/init.d/*; do - [ ! -x "$svc" ] || complete -p "${svc##*/}" &>/dev/null || \ - complete -F _service -o default "${svc##*/}" +for svc in /etc/init.d/!($_backup_glob) /etc/rc.d/init.d/!($_backup_glob); do + [ -x "$svc" ] && complete -F _service $svc done unset svc -# 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/completions/sh b/completions/sh index 9c7ca020..b70e53e2 100644 --- a/completions/sh +++ b/completions/sh @@ -1,11 +1,9 @@ -# POSIX sh(1) completion +# POSIX sh(1) completion -*- shell-script -*- -have sh && _sh() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -c) @@ -32,10 +30,4 @@ _sh() } && complete -F _sh sh -# 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/completions/shadow b/completions/shadow deleted file mode 100644 index 6aea045b..00000000 --- a/completions/shadow +++ /dev/null @@ -1,482 +0,0 @@ -# bash completion for shadow utils - -have useradd && -_useradd() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - # TODO: if -o/--non-unique is given, could complete on existing uids - # with -u/--uid - - case $prev in - -c|--comment|-h|--help|-e|--expiredate|-f|--inactive|-k|--key|\ - -p|--password|-u|--uid|-Z|--selinux-user) - return 0 - ;; - -b|--base-dir|-d|--home|-k|--skel) - _filedir -d - return 0 - ;; - -g|--gid) - _gids - COMPREPLY=( $( compgen -W '${COMPREPLY[@]} $( compgen -g )' \ - -- "$cur" ) ) - return 0 - ;; - -G|--groups) - COMPREPLY=( $( compgen -g -- "$cur" ) ) - return 0 - ;; - -s|--shell) - _shells - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--base-dir --comment --home-dir --defaults \ - --expiredate --inactive --gid --groups --help --skel --key \ - --no-log-init --create-home --no-create-home --no-user-group \ - --non-unique --password --system --shell --uid --user-group \ - --selinux-user' -- "$cur" ) ) - return 0 - fi -} && -complete -F _useradd useradd - -have usermod && -_usermod() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - # TODO: if -o/--non-unique is given, could complete on existing uids - # with -u/--uid - - case $prev in - -c|--comment|-d|--home|-e|--expiredate|-f|--inactive|-h|--help|\ - -l|--login|-p|--password|-u|--uid|-Z|--selinux-user) - return 0 - ;; - -g|--gid) - _gids - COMPREPLY=( $( compgen -W '${COMPREPLY[@]} $( compgen -g )' \ - -- "$cur" ) ) - return 0 - ;; - -G|--groups) - COMPREPLY=( $( compgen -g -- "$cur" ) ) - return 0 - ;; - -s|--shell) - _shells - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - # TODO: -U/--unlock, -p/--password, -L/--lock mutually exclusive - COMPREPLY=( $( compgen -W '--append --comment --home --expiredate \ - --inactive --gid --groups --help --login --lock --move-home \ - --non-unique --password --shell --uid --unlock --selinux-user' \ - -- "$cur" ) ) - return 0 - fi - - COMPREPLY=( $( compgen -u -- "$cur" ) ) -} && -complete -F _usermod usermod - -have userdel && -_userdel() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--force --help --remove' -- "$cur" ) ) - return 0 - fi - - COMPREPLY=( $( compgen -u -- "$cur" ) ) -} && -complete -F _userdel userdel - -have chage && -_chage() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -d|--lastday|-E|--expiredate|-h|--help|-I|--inactive|-m|--mindays|\ - -M|--maxdays|-W|--warndays) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--lastday --expiredate --help --inactive \ - --list --mindays --maxdays --warndays' -- "$cur" ) ) - return 0 - fi - - COMPREPLY=( $( compgen -u -- "$cur" ) ) -} && -complete -F _chage chage - -have passwd && -_passwd() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -n|-x|-w|-i|-\?|--help|--usage) - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-k -l --stdin -u -d -n -x -w -i -S \ - -? --help --usage' -- "$cur" ) ) - return 0 - fi - - _allowed_users -} && -complete -F _passwd passwd - -have chpasswd && -_chpasswd() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -c|--crypt) - COMPREPLY=( $( compgen -W 'DES MD5 NONE SHA256 SHA512' \ - -- "$cur" ) ) - return 0 - ;; - -s|--sha-rounds) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--crypt-method --encrypted \ - --help --md5 --sha-rounds' -- "$cur" ) ) - return 0 - fi -} && -complete -F _chpasswd chpasswd - -have newusers && -_newusers() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -c|--crypt) - COMPREPLY=( $( compgen -W 'DES MD5 NONE SHA256 SHA512' \ - -- "$cur" ) ) - return 0 - ;; - -s|--sha-rounds) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--crypt-method --help --system \ - --sha-rounds' -- "$cur" ) ) - return 0 - fi - - _filedir -} && -complete -F _newusers newusers - -have pwck && -_pwck() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-q -r -s' -- "$cur" ) ) - return 0 - fi - - _filedir -} && -complete -F _pwck pwck - -have groupadd && -_groupadd() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - # TODO: if -o/--non-unique is given, could complete on existing gids - # with -g/--gid - - case $prev in - -g|--gid|-K|--key|-p|--password) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--force --gid --help \ - --key --non-unique --password --system' -- "$cur" ) ) - return 0 - fi -} && -complete -F _groupadd groupadd - -have groupmod && -_groupmod() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - # TODO: if -o/--non-unique is given, could complete on existing gids - # with -g/--gid - - case $prev in - -g|--gid|-h|--help|-n|--new-name|-p|--password) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--gid --help --new-name \ - --non-unique --password' -- "$cur" ) ) - return 0 - fi - - COMPREPLY=( $( compgen -g -- "$cur" ) ) -} && -complete -F _groupmod groupmod - -complete -g groupdel - -have newgrp && -_newgrp() -{ - COMPREPLY=() - if [[ "`_get_cword`" == "-" ]]; then - COMPREPLY=( - ) - else - _allowed_groups - fi -} && -complete -F _newgrp newgrp - -have gpasswd && -_gpasswd() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -a|-d|-A|-M) - COMPREPLY=( $( compgen -u -- "$cur" ) ) - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -d -r -R -A -M' -- "$cur" ) ) - return 0 - fi - - COMPREPLY=( $( compgen -g -- "$cur" ) ) -} && -complete -F _gpasswd gpasswd - -have groupmems && -_groupmems() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -a|-d) - COMPREPLY=( $( compgen -u -- "$cur" ) ) - return 0 - ;; - -g) - COMPREPLY=( $( compgen -g -- "$cur" ) ) - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -d -p -g -l' -- "$cur" ) ) - return 0 - fi -} && -complete -F _groupmems groupmems - -have grpck && -_grpck() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-r -s' -- "$cur" ) ) - return 0 - fi - - _filedir -} && -complete -F _grpck grpck - -have vipw || have vigr && -_vipw() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -h|--help) - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--group --help --passwd \ - --quiet --shadow' -- "$cur" ) ) - return 0 - fi -} && -complete -F _vipw vipw vigr - -have faillog && -_faillog() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -h|--help|-l|--lock-time|-m|--maximum|-t|--time) - return 0 - ;; - -u|--user) - COMPREPLY=( $( compgen -u -- "$cur" ) ) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --help --lock-time \ - --maximum --reset --time --user' -- "$cur" ) ) - return 0 - fi -} && -complete -F _faillog faillog - -have lastlog && -_lastlog() -{ - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true - - case $prev in - -b|--before|-h|--help|-t|--time) - return 0 - ;; - -u|--user) - COMPREPLY=( $( compgen -u -- "$cur" ) ) - return 0 - ;; - esac - - $split && return 0 - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--before --help --time --user' -- "$cur" ) ) - return 0 - fi -} && -complete -F _lastlog lastlog - -# 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/completions/sitecopy b/completions/sitecopy index 616bc5e4..1f18514a 100644 --- a/completions/sitecopy +++ b/completions/sitecopy @@ -1,40 +1,51 @@ -# sitecopy(1) completion +# sitecopy(1) completion -*- shell-script -*- # Copyright 2003 Eelco Lempsink <eelcolempsink@gmx.net> +# 2011 Raphaël Droz <raphael.droz+floss@gmail.com> # License: GNU GPL v2 or later -have sitecopy && _sitecopy() { - local cur + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur + case $prev in + --debug|-d) + COMPREPLY=( $( compgen -W "socket files rcfile ftp http httpbody + rsh sftp xml xmlparse cleartext" -- "$cur" ) ) + compopt -o nospace + return 0 + ;; + --logfile|-g|--rcfile|-r) + _filedir + return 0 + ;; + --storepath|-p) + _filedir -d + return 0 + ;; + esac case $cur in --*) - COMPREPLY=( $( compgen -W "$(sitecopy -h | command grep -e '--\w' |\ - awk '{sub (/=(FILE|PATH)/, "", $2); print $2}')" -- "$cur" ) ) - ;; - -*) - COMPREPLY=( $( compgen -W "$(sitecopy -h | command grep -e '-\w' | \ - awk '{sub (",", "", $1); print $1}')" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$(_parse_help $1)" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 ;; - *) - if [ -r ~/.sitecopyrc ]; then - COMPREPLY=( $( compgen -W "$(command grep '^["$'\t '"]*site' \ - ~/.sitecopyrc | awk '{print $2}')" -- "$cur" ) ) - fi + + # only complete long options + -) + compopt -o nospace + COMPREPLY=( -- ) + return 0 ;; esac + if [ -r ~/.sitecopyrc ]; then + COMPREPLY=( $( compgen -W "$($1 -v | \ + command sed -n '/^Site:/s/Site: //p')" -- "$cur" ) ) + fi return 0 } && complete -F _sitecopy -o default sitecopy -# 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/completions/slackpkg b/completions/slackpkg new file mode 100644 index 00000000..1d5759cb --- /dev/null +++ b/completions/slackpkg @@ -0,0 +1,108 @@ +# bash completion for slackpkg tool -*- shell-script -*- +# options list is based on `grep '\-.*\=.*)' /usr/sbin/slackpkg | cut -f1 -d\)` + +_slackpkg() +{ + local cur prev words cword + _init_completion -n = || return + + local split=false + if [[ "$cur" == -?*=* ]]; then + prev="${cur%%?(\\)=*}" + cur="${cur#*=}" + split=true + fi + + case "$prev" in + -delall|-checkmd5|-checkgpg|-checksize|-postinst|-onoff|-download_all|\ + -dialog|-batch|-only_new_dotnew|-use_includes|-spinning) + COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) + return 0 + ;; + -default_answer) + COMPREPLY=( $( compgen -W 'yes no' -- "$cur" ) ) + return 0 + ;; + -dialog_maxargs|-mirror) + # argument required but no completions available + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + compopt -o nospace + COMPREPLY=( $( compgen -W '-delall= -checkmd5= -checkgpg= \ + -checksize= -postinst= -onoff= -download_all= -dialog= \ + -dialog_maxargs= -batch= -only_new_dotnew= -use_includes= \ + -spinning= -default_answer= -mirror=' -- "$cur" ) ) + return 0 + fi + + local confdir="/etc/slackpkg" + local config="$confdir/slackpkg.conf" + + if [ ! -r "$config" ]; then + return 0 + fi + . "$config" + + local i action + for (( i=1; i<${#words[@]}; i++ )); do + if [[ "${words[i]}" != -* ]]; then + action="${words[i]}" + break + fi + done + + case "$action" in + generate-template|search|file-search) + # argument required but no completions available + return 0 + ;; + install-template|remove-template) + if [ -e "$confdir/templates" ]; then + COMPREPLY=( $( cd "$confdir/templates"; \ + compgen -f -X "!*.template" -- "$cur" ) ) + COMPREPLY=( ${COMPREPLY[@]%.template} ) + fi + return 0 + ;; + remove) + _filedir + COMPREPLY+=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \ + xap y' -- "$cur" ) ) + COMPREPLY+=( $( cd /var/log/packages; compgen -f -- "$cur" ) ) + return 0 + ;; + install|reinstall|upgrade|blacklist|download) + _filedir + COMPREPLY+=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \ + xap y' -- "$cur" ) ) + COMPREPLY+=( $( cut -f 6 -d\ ${WORKDIR}/pkglist 2> /dev/null | \ + grep "^$cur" ) ) + return 0 + ;; + info) + COMPREPLY+=( $( cut -f 6 -d\ ${WORKDIR}/pkglist 2> /dev/null | \ + grep "^$cur" ) ) + return 0 + ;; + update) + # we should complete the same as the next `list` + "gpg" + COMPREPLY=( $( compgen -W 'gpg' -- "$cur" ) ) + ;& + *) + COMPREPLY+=( $( compgen -W 'install reinstall upgrade remove \ + blacklist download update install-new upgrade-all \ + clean-system new-config check-updates help generate-template \ + install-template remove-template search file-search info' -- \ + "$cur" ) ) + return 0 + ;; + esac + +} && complete -F _slackpkg slackpkg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/slapt-get b/completions/slapt-get new file mode 100644 index 00000000..99b50384 --- /dev/null +++ b/completions/slapt-get @@ -0,0 +1,81 @@ +# slapt-get completion -*- shell-script -*- + +_slapt_get() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + --config|-c) + _filedir + return 0 + ;; + --retry|--search) + # argument required but no completions available + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + [[ $COMPREPLY ]] && return 0 + fi + + local i t + # search for last action (--install|--install-set|--remove|--show|--filelist) + for (( i=${#words[@]}-1; i>0; i-- )); do + if [[ ${words[i]} == --show ]]; then + t="all" + break + elif [[ ${words[i]} == -@(i|-install) ]]; then + t="avl" + break + elif [[ ${words[i]} == --install-set ]]; then + t="set" + break + elif [[ ${words[i]} == --@(remove|filelist) ]]; then + t="ins" + break + fi + done + + local config="/etc/slapt-get/slapt-getrc" # default config location + # search for config + for (( i=${#words[@]}-1; i>0; i-- )); do + if [[ ${words[i]} == -@(c|-config) ]]; then + config="${words[i+1]}" + break + fi + done + if [ ! -r "$config" ]; then + return + fi + + case $t in + all) # --show + # slapt-get will fail to search for "^name-version" + # it can search for names only + local name=${cur%%-*} + COMPREPLY=( $( slapt-get -c $config --search "^$name" 2>/dev/null |\ + sed -ne "/^$cur/{s/ .*$//;p}" ) ) + return 0 + ;; + avl) # --install|-i| + COMPREPLY=( $( slapt-get -c $config --available 2>/dev/null | \ + sed -ne "/^$cur/{s/ .*$//;p}") ) + return 0 + ;; + ins) # --remove|--filelist + COMPREPLY=( $( cd /var/log/packages; compgen -f -- "$cur" ) ) + return 0 + ;; + set) # --install-set + COMPREPLY=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \ + xap y' -- "$cur" ) ) + return 0 + ;; + esac +} && complete -F _slapt_get slapt-get + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/slapt-src b/completions/slapt-src new file mode 100644 index 00000000..976ef65e --- /dev/null +++ b/completions/slapt-src @@ -0,0 +1,60 @@ +# slapt-src completion -*- shell-script -*- + +_slapt_src() +{ + local cur prev words cword + _init_completion -n : || return + + case "$prev" in + --config|-c) + _filedir + return 0 + ;; + --search|-s|--postprocess|-p) + # argument required but no completions available + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + [[ $COMPREPLY ]] && return 0 + fi + + local i t + # search for last action (-i|-w|-b|-f) + for (( i=${#words[@]}-1; i>0; i-- )); do + if [[ ${words[i]} == -@(i|w|f|b|-install|-show|-build|-fetch) ]]; then + t="all" + break + fi + done + if [ "$t" != "all" ]; then + return 0 + fi + + local config="/etc/slapt-get/slapt-srcrc" # default config location + # search for config + for (( i=${#words[@]}-1; i>0; i-- )); do + if [[ ${words[i]} == -@(c|-config) ]]; then + config="${words[i+1]}" + break + fi + done + if [ ! -r "$config" ]; then + return 0 + fi + + if [[ "$cur" == *:* ]]; then + local name=${cur%:*} + local version=${cur##*:} + COMPREPLY=( $( slapt-src --config $config --search "^$name" 2> \ + /dev/null | sed -ne "/^$cur/{s/^$name:\([^ ]*\) .*$/\1/;p}" ) ) + else + COMPREPLY=( $( slapt-src --config $config --search "^$cur" 2>/dev/null \ + | sed -ne "/^$cur/{s/ .*$//;p}" ) ) + fi +} && complete -F _slapt_src slapt-src + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/smartctl b/completions/smartctl index 74e42816..8461c988 100644 --- a/completions/smartctl +++ b/completions/smartctl @@ -1,18 +1,31 @@ -# bash completion for smartctl(8) +# bash completion for smartctl(8) -*- shell-script -*- -have smartctl && -{ _smartctl_quietmode() { COMPREPLY=( $( compgen -W 'errorsonly silent noserial' -- "$cur" ) ) } _smartctl_device() { - local i opts='ata scsi sat marvell hpt cciss' - for (( i=0; i <= 31; i++ )) ; do - opts="$opts 3ware,$i" - done - COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) + case $cur in + areca*|3ware*|megaraid*|cciss*) + COMPREPLY+=( ${cur%%,*},{0..31} ) + COMPREPLY=( $( compgen -W '"${COMPREPLY[@]}"' -- "$cur" ) ) + ;; + hpt*) + COMPREPLY+=( hpt,{1..4}/{1..8} hpt,{1..4}/{1..8}/{1..5} ) + COMPREPLY=( $( compgen -W '"${COMPREPLY[@]}"' -- "$cur" ) ) + ;; + *) + COMPREPLY=( $( compgen -W "ata scsi sat usbcypress usbjmicron + usbsunplus marvell areca 3ware hpt megaraid cciss auto test" \ + -- "$cur" ) ) + case "${COMPREPLY[@]}" in + areca|3ware|hpt|megaraid|cciss) + compopt -o nospace + ;; + esac + ;; + esac } _smartctl_tolerance() { @@ -37,7 +50,9 @@ _smartctl_feature() } _smartctl_log() { - COMPREPLY=( $( compgen -W 'error selftest selective directory' -- "$cur" ) ) + COMPREPLY=( $( compgen -W 'error selftest selective directory background + sasphy sasphy,reset sataphy sataphy,reset scttemp scttempsts + scttemphist scterc gplog smartlog xerror xselftest' -- "$cur" ) ) } _smartctl_vendorattribute() { @@ -57,19 +72,27 @@ _smartctl_presets() } _smartctl_test() { - COMPREPLY=( $( compgen -W 'offline short long conveyance select \ - afterselect,on afterselect,off pending scttempint' -- "$cur" ) ) + [[ $cur == @(pending|scttempint|vendor), ]] && return 0 + COMPREPLY=( $( compgen -W 'offline short long conveyance select, + select,redo select,next afterselect,on afterselect,off pending, + scttempint, vendor,' -- "$cur" ) ) + [[ $COMPREPLY == *, ]] && compopt -o nospace +} +_smartctl_drivedb() +{ + local prefix= + if [[ $cur == +* ]] ; then + prefix=+ + cur="${cur#+}" + fi + _filedir h + [[ -n $prefix ]] && COMPREPLY=( "${COMPREPLY[@]/#/$prefix}" ) } - _smartctl() { - local cur prev split=false - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in -q|--quietmode) @@ -79,7 +102,7 @@ _smartctl() _smartctl_device return 0 ;; - -t|--tolerance) + -T|--tolerance) _smartctl_tolerance return 0 ;; @@ -115,6 +138,10 @@ _smartctl() _smartctl_presets return 0 ;; + -B|--drivedb) + _smartctl_drivedb + return 0 + ;; -t|--test) _smartctl_test return 0 @@ -124,23 +151,18 @@ _smartctl() $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version --info --all --quietmode \ - --device --tolerance --badsum --report --nocheck --smart \ - --offlineauto --saveauto --health --capabilities --attributes \ - --log --vendorattribute --firmwarebug --presets --test --captive \ - --abort' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '--help --version --info --all --xall + --scan --scan-open --quietmode= --device= --tolerance= --badsum= + --report= --nocheck= --smart= --offlineauto= --saveauto= --health + --capabilities --attributes --log= --vendorattribute= + --firmwarebug= --presets= --drivedb= --test= --captive --abort' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace else cur=${cur:=/dev/} _filedir fi -} +} && complete -F _smartctl smartctl -} -# 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/completions/smbclient b/completions/smbclient new file mode 100644 index 00000000..ceda7bbf --- /dev/null +++ b/completions/smbclient @@ -0,0 +1,323 @@ +# bash completion for samba -*- shell-script -*- + +_samba_resolve_order() +{ + COMPREPLY=( $( compgen -W 'lmhosts host wins bcast' -- "$cur" ) ) +} + +_samba_domains() +{ + if [ -n "${COMP_SAMBA_SCAN:-}" ]; then + COMPREPLY=( $( compgen -W '$( smbtree -N -D )' -- "$cur" ) ) + fi +} + +_samba_hosts() +{ + if [ -n "${COMP_SAMBA_SCAN:-}" ]; then + COMPREPLY=( $( compgen -W "$( smbtree -N -S | \ + sed -ne 's/^[[:space:]]*\\\\*\([^[:space:]]*\).*/\1/p' \ + )" -- $cur ) ) + fi +} + +_samba_debuglevel() +{ + COMPREPLY=( $( compgen -W '{0..10}' -- "$cur" ) ) +} + +_samba_sockopts() +{ + COMPREPLY=( $( compgen -W 'SO_KEEPALIVE SO_REUSEADDR SO_BROADCAST + TCP_NODELAY IPTOS_LOWDELAY IPTOS_THROUGHPUT SO_SNDBUF SO_RCVBUF + SO_SNDLOWAT SO_RCVLOWAT' -- "$cur" ) ) +} + +_samba_signing() +{ + COMPREPLY=( $( compgen -W 'on off required' -- "$cur" ) ) +} + +_smbclient() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -R|--name-resolve) + _samba_resolve_order + return 0 + ;; + -t) + COMPREPLY=( $( compgen -W 'SJIS EUC JIS7 JIS8 JUNET HEX CAP' \ + -- "$cur" ) ) + return 0 + ;; + -s|--configfile|-A|--authentication-file) + _filedir + return 0 + ;; + -l|--log-basename|-D|--directory) + _filedir -d + return 0 + ;; + -O|--socket-options) + _samba_sockopts + return 0 + ;; + -T) + COMPREPLY=( $( compgen -W 'c x I X F b g q r N a' -- "$cur" ) ) + return 0 + ;; + -W|--workgroup) + _samba_domains + return 0 + ;; + -d|--debuglevel) + _samba_debuglevel + return 0 + ;; + -L|--list) + _samba_hosts + return 0 + ;; + -S|--signing) + _samba_signing + return 0 + ;; + -p|--port|-M|--message|-I|--ip-address|-b|--send-buffer|-U|--user|-n|\ + --netbiosname|-i|--scope|-T|--tar|-c|--command|-m|--max-protocol) + # argument required but no completions available + return 0 + ;; + -\?|--help|-V|--version) + # all other arguments are noop with these + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _smbclient smbclient + +_smbget() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -o|--outputfile|-f|--rcfile) + _filedir + return 0 + ;; + -d|--debuglevel) + _samba_debuglevel + return 0 + ;; + -w|--workgroup) + _samba_domains + return 0 + ;; + -u|--username|-p|--password|-b|--blocksize) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _smbget smbget + +_smbcacls() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -s|--configfile|-A|--authentication-file) + _filedir + return 0 + ;; + -l|--log-basename) + _filedir -d + return 0 + ;; + -d|--debuglevel) + _samba_debuglevel + return 0 + ;; + --signing) + _samba_signing + return 0 + ;; + -O|--socket-options) + _samba_sockopts + return 0 + ;; + -W|--workgroup) + _samba_domains + return 0 + ;; + -\?|--help|--usage|-D|--delete|-M|--modify|-a|--add|-S|--set|-C|\ + --chown|-G|--chgrp|-n|--netbiosname|-i|--scope|-U|--user) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _smbcacls smbcacls + +_smbcquotas() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -s|--configfile|-A|--authentication-file) + _filedir + return 0 + ;; + -l|--log-basename) + _filedir -d + return 0 + ;; + -d|--debuglevel) + _samba_debuglevel + return 0 + ;; + --signing) + _samba_signing + return 0 + ;; + -\?|--help|--usage|-U|-u|--user|-S|--set) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _smbcquotas smbcquotas + +_smbpasswd() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -r) + _samba_hosts + return 0 + ;; + -R) + _samba_resolve_order + return 0 + ;; + -c) + _filedir + return 0 + ;; + -D) + _samba_debuglevel + return 0 + ;; + -U|-h|-w) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) + fi +} && +complete -F _smbpasswd smbpasswd + +_smbtar() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -r|-t) + _filedir tar + return 0 + ;; + -s) + _samba_hosts + return 0 + ;; + -l) + _samba_debuglevel + return 0 + ;; + -N) + _filedir + return 0 + ;; + -p|-x|-b|-d|-u) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + fi +} && +complete -F _smbtar smbtar + +_smbtree() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -s|--configfile|-A|--authentication-file) + _filedir + return 0 + ;; + -l|--log-basename) + _filedir -d + return 0 + ;; + -d|--debuglevel) + _samba_debuglevel + return 0 + ;; + -S|--signing) + _samba_signing + return 0 + ;; + -\?|--help|--usage|-U|--user) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _smbtree smbtree + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/snownews b/completions/snownews index 9c99ed7c..0cb35cdc 100644 --- a/completions/snownews +++ b/completions/snownews @@ -1,25 +1,15 @@ -# snownews(1) completion +# snownews(1) completion -*- shell-script -*- -have snownews && _snownews() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]]; then # return list of available options - COMPREPLY=( $( compgen -W '--update --help --version \ - --disable-versioncheck -u -h -V' -- "$cur")) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) fi } && complete -F _snownews snownews -# 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/completions/sqlite3 b/completions/sqlite3 index b37c55f7..1207823d 100644 --- a/completions/sqlite3 +++ b/completions/sqlite3 @@ -1,11 +1,9 @@ -# sqlite3(1) completion +# sqlite3(1) completion -*- shell-script -*- -have sqlite3 && _sqlite3() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return local dbexts='@(sqlite?(3)|?(s?(3))db)' @@ -30,10 +28,4 @@ _sqlite3() } && complete -F _sqlite3 sqlite3 -# 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/completions/ssh b/completions/ssh index cf966ae5..e30b9153 100644 --- a/completions/ssh +++ b/completions/ssh @@ -1,34 +1,22 @@ -# ssh(1) completion - -have ssh && -{ - -_ssh_bindaddress() -{ - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W \ - "$( PATH="$PATH:/sbin" ifconfig -a | \ - sed -ne 's/.*addr:\([^[:space:]]*\).*/\1/p' \ - -ne 's/.*inet[[:space:]]\{1,\}\([^[:space:]]*\).*/\1/p' )" \ - -- "$cur" ) ) -} +# ssh(1) completion -*- shell-script -*- _ssh_ciphers() { - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W '3des-cbc aes128-cbc \ + COMPREPLY+=( $( compgen -W '3des-cbc aes128-cbc \ aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr arcfour128 \ arcfour256 arcfour blowfish-cbc cast128-cbc' -- "$cur" ) ) } _ssh_macs() { - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W 'hmac-md5 hmac-sha1 \ + COMPREPLY+=( $( compgen -W 'hmac-md5 hmac-sha1 \ umac-64@openssh.com hmac-ripemd160 hmac-sha1-96 hmac-md5-96' \ -- "$cur" ) ) } _ssh_options() { - type compopt &>/dev/null && compopt -o nospace + compopt -o nospace COMPREPLY=( $( compgen -S = -W 'AddressFamily BatchMode BindAddress \ ChallengeResponseAuthentication CheckHostIP Cipher Ciphers \ ClearAllForwardings Compression CompressionLevel ConnectionAttempts \ @@ -74,7 +62,7 @@ _ssh_suboption() COMPREPLY=( $( compgen -W 'any inet inet6' -- "$cur" ) ) ;; BindAddress) - _ssh_bindaddress + _ip_addresses ;; Cipher) COMPREPLY=( $( compgen -W 'blowfish des 3des' -- "$cur" ) ) @@ -116,13 +104,11 @@ _ssh_suboption_check() _ssh() { - local cur prev configfile - local -a config + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev - #cur=`_get_cword :` - #prev=`_get_pword` + local configfile + local -a config _ssh_suboption_check && return 0 @@ -152,7 +138,10 @@ _ssh() return 0 ;; -b) - _ssh_bindaddress + _ip_addresses + return 0 + ;; + -D|-e|-I|-L|-O|-p|-R|-W) return 0 ;; esac @@ -164,12 +153,10 @@ _ssh() COMPREPLY=( "${COMPREPLY[@]/#/-F}" ) cur=-F$cur # Restore cur elif [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-1 -2 -4 -6 -A -a -C -f -g -K -k -M \ - -N -n -q -s -T -t -V -v -X -v -Y -y -b -b -c -D -e -F \ - -i -L -l -m -O -o -p -R -S -w' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) else # Search COMP_WORDS for '-F configfile' or '-Fconfigfile' argument - set -- "${COMP_WORDS[@]}" + set -- "${words[@]}" while [ $# -gt 0 ]; do if [ "${1:0:2}" = -F ]; then if [ ${#1} -gt 2 ]; then @@ -183,29 +170,29 @@ _ssh() shift done _known_hosts_real -a -F "$configfile" "$cur" - if [ $COMP_CWORD -ne 1 ]; then - _compopt_o_filenames - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -c -- "$cur" ) ) + if [ $cword -ne 1 ]; then + compopt -o filenames + COMPREPLY+=( $( compgen -c -- "$cur" ) ) fi fi return 0 -} +} && shopt -u hostcomplete && complete -F _ssh ssh slogin autossh # sftp(1) completion # _sftp() { - local cur prev configfile + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev + local configfile _ssh_suboption_check && return 0 case $prev in - -b|-F|-P) + -b|-F|-i) _filedir return 0 ;; @@ -213,6 +200,13 @@ _sftp() _ssh_options return 0 ;; + -c) + _ssh_ciphers + return 0 + ;; + -B|-D|-P|-R|-S|-s) + return 0 + ;; esac if [[ "$cur" == -F* ]]; then @@ -222,11 +216,10 @@ _sftp() COMPREPLY=( "${COMPREPLY[@]/#/-F}" ) cur=-F$cur # Restore cur elif [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-1 -C -v -B -b -F -o -P -R -S -s' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) else # Search COMP_WORDS for '-F configfile' argument - set -- "${COMP_WORDS[@]}" + set -- "${words[@]}" while [ $# -gt 0 ]; do if [ "${1:0:2}" = -F ]; then if [ ${#1} -gt 2 ]; then @@ -243,7 +236,7 @@ _sftp() fi return 0 -} +} && shopt -u hostcomplete && complete -F _sftp sftp # things we want to backslash escape in scp paths @@ -283,7 +276,7 @@ _scp_remote_files() sed -e 's/'$_scp_path_esc'/\\\\\\&/g' -e 's/[*@|=]$//g' \ -e 's/[^\/]$/& /g' ) fi - COMPREPLY=( "${COMPREPLY[@]}" $files ) + COMPREPLY+=( $files ) } # This approach is used instead of _filedir to get a space appended @@ -301,10 +294,10 @@ _scp_local_files() fi if $dirsonly ; then - COMPREPLY=( "${COMPREPLY[@]}" $( command ls -aF1d $cur* 2>/dev/null | \ + COMPREPLY+=( $( command ls -aF1d $cur* 2>/dev/null | \ sed -e "s/$_scp_path_esc/\\\\&/g" -e '/[^\/]$/d' -e "s/^/$1/") ) else - COMPREPLY=( "${COMPREPLY[@]}" $( command ls -aF1d $cur* 2>/dev/null | \ + COMPREPLY+=( $( command ls -aF1d $cur* 2>/dev/null | \ sed -e "s/$_scp_path_esc/\\\\&/g" -e 's/[*@|=]$//g' \ -e 's/[^\/]$/& /g' -e "s/^/$1/") ) fi @@ -314,10 +307,10 @@ _scp_local_files() # _scp() { - local configfile cur prev prefix + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev + local configfile prefix _ssh_suboption_check && { COMPREPLY=( "${COMPREPLY[@]/%/ }" ) @@ -330,7 +323,7 @@ _scp() ;; -F|-i|-S) _filedir - type compopt &>/dev/null && compopt +o nospace + compopt +o nospace return 0 ;; -c) @@ -356,7 +349,7 @@ _scp() prefix=-F else # Search COMP_WORDS for '-F configfile' or '-Fconfigfile' argument - set -- "${COMP_WORDS[@]}" + set -- "${words[@]}" while [ $# -gt 0 ]; do if [ "${1:0:2}" = -F ]; then if [ ${#1} -gt 2 ]; then @@ -372,13 +365,13 @@ _scp() case $cur in -*) - COMPREPLY=( $( compgen -W '-1 -2 -4 -6 -B -C -c -F -i -l -o \ - -P -p -q -r -S -v' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "${words[0]}" )' \ + -- "$cur" ) ) COMPREPLY=( "${COMPREPLY[@]/%/ }" ) return 0 ;; - */*) - # pass through + */*|[.~]*) + # not a known host, pass through ;; *) _known_hosts_real -c -a -F "$configfile" "$cur" @@ -389,40 +382,7 @@ _scp() _scp_local_files "$prefix" return 0 -} +} && complete -F _scp -o nospace scp -# ssh-copy-id(1) completion -# -_ssh_copy_id() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - -i) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-i' -- "$cur" ) ) - else - _known_hosts_real -a "$cur" - fi - - return 0 -} -complete -F _ssh_copy_id ssh-copy-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/completions/ssh-copy-id b/completions/ssh-copy-id new file mode 100644 index 00000000..9c5af9ca --- /dev/null +++ b/completions/ssh-copy-id @@ -0,0 +1,25 @@ +# ssh-copy-id(1) completion -*- shell-script -*- + +_ssh_copy_id() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) + else + _known_hosts_real -a "$cur" + fi + + return 0 +} && +complete -F _ssh_copy_id ssh-copy-id + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/sshfs b/completions/sshfs index d7945f88..90a92645 100644 --- a/completions/sshfs +++ b/completions/sshfs @@ -1,34 +1,27 @@ -# sshfs(1) completion +# sshfs(1) completion -*- shell-script -*- -have sshfs && _sshfs() { - local cur userhost path + local cur prev words cword + _init_completion -n : || return - COMPREPLY=() - _get_comp_words_by_ref -n : cur + local userhost path _expand || return 0 - if [[ "$cur" == *:* ]] && type _scp_remote_files &>/dev/null ; then - _scp_remote_files -d + if [[ "$cur" == *:* ]]; then + _xfunc ssh _scp_remote_files -d # unlike scp and rsync, sshfs works with 1 backslash instead of 3 COMPREPLY=( "${COMPREPLY[@]//\\\\\\/\\}" ) return 0 fi - [[ "$cur" == */* ]] || _known_hosts_real -c -a "$cur" + [[ "$cur" == @(*/|[.~])* ]] || _known_hosts_real -c -a "$cur" - type _scp_local_files &>/dev/null && _scp_local_files -d + _xfunc ssh _scp_local_files -d return 0 } && complete -F _sshfs -o nospace sshfs -# 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/completions/sshmitm b/completions/sshmitm new file mode 100644 index 00000000..829bfcd5 --- /dev/null +++ b/completions/sshmitm @@ -0,0 +1,17 @@ +# sshmitm completion -*- shell-script -*- + +_sshmitm() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + else + _known_hosts_real "$cur" + fi + +} && +complete -F _sshmitm sshmitm + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/sshow b/completions/sshow new file mode 100644 index 00000000..a28d2444 --- /dev/null +++ b/completions/sshow @@ -0,0 +1,22 @@ +# sshow completion -*- shell-script -*- + +_sshow() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _interfaces + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi + +} && +complete -F _sshow sshow + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/strace b/completions/strace index 0ee27377..0ac4163a 100644 --- a/completions/strace +++ b/completions/strace @@ -1,14 +1,14 @@ -# bash completion for strace +# bash completion for strace -*- shell-script -*- -have strace && _strace() { - local cur prev offset i syscalls arch unistd + local cur prev words cword + _init_completion -n = || return # check if we're still completing strace - offset=0 - for (( i=1; i <= COMP_CWORD; i++ )); do - case ${COMP_WORDS[$i]} in + local offset=0 i + for (( i=1; i <= cword; i++ )); do + case ${words[$i]} in -o|-e|-p) i=$((i+1)) continue @@ -22,43 +22,48 @@ _strace() done if [ $offset -gt 0 ]; then - # FAIL: _command_offset is not defined anywhere. Guillame? _command_offset $offset else - COMPREPLY=() - _get_comp_words_by_ref cur prev - case $prev in -e) if [[ "$cur" == *=* ]]; then prev=${cur/=*/} cur=${cur/*=/} - # Import arch-specific syscalls -- not foolproof IMHO - #+ --David Paleino - arch=$(command uname -m) - syscalls=$(awk '/^#define __NR/ {print $2}' \ - /usr/include/asm/unistd.h | sed -e \ - 's/__NR_//') - if [ -z "$syscalls" ]; then - if [[ "$arch" == *86 ]]; then - unistd=/usr/include/asm/unistd_32.h - else - unistd=/usr/include/asm/unistd_64.h - fi - syscalls=$(awk '/^#define __NR/ {print $2}' \ - $unistd | sed -e 's/__NR_//') - fi - case $prev in trace) - COMPREPLY=( $( compgen -W "$syscalls file process - network signal ipc desc all none" -- "$cur") ) + # Import arch-specific syscalls + #+ -- not foolproof IMHO --David Paleino + local define syscall rest + local -A syscalls + while read -r define syscall rest; do + [[ $define == "#define" && \ + $syscall =~ ^__NR_(.+) ]] && \ + syscalls[${BASH_REMATCH[1]}]=1 + done 2>/dev/null < /usr/include/asm/unistd.h + if [[ ! $syscalls ]]; then + local unistd arch=$( command uname -m ) + if [[ "$arch" == *86 ]]; then + unistd=/usr/include/asm/unistd_32.h + else + unistd=/usr/include/asm/unistd_64.h + fi + while read -r define syscall rest; do + [[ $define == "#define" && \ + $syscall =~ ^__NR_(.+) ]] && \ + syscalls[${BASH_REMATCH[1]}]=1 + done 2>/dev/null < $unistd + fi + + COMPREPLY=( $( compgen -W '${!syscalls[@]} file + process network signal ipc desc all none' \ + -- "$cur") ) return 0 ;; esac else + compopt -o nospace COMPREPLY=( $( compgen -S"=" -W 'trace abbrev verbose raw signal read write' -- "$cur" ) ) fi @@ -94,10 +99,4 @@ _strace() } && complete -F _strace -o default strace -# 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/completions/svk b/completions/svk index bda5997a..1146277d 100644 --- a/completions/svk +++ b/completions/svk @@ -1,12 +1,11 @@ -# svk(1) completion +# svk(1) completion -*- shell-script -*- -have svk && _svk() { - local cur prev commands options command + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur prev + local commands options command commands='add admin annotate ann blame praise cat checkout co cleanup \ cmerge cm commit ci copy cp delete del remove rm depotmap \ @@ -16,7 +15,7 @@ _svk() pset pull push resolved revert smerge sm status st stat switch \ sw sync sy update up verify' - if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ $cword -eq 1 ]] ; then if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--version' -- "$cur" ) ) else @@ -26,16 +25,16 @@ _svk() case $prev in -F|--file|--targets) _filedir - return 0; + return 0 ;; --encoding) COMPREPLY=( $( compgen -W \ '$( iconv --list | sed -e "s@//@@;" )' -- "$cur" ) ) - return 0; + return 0 ;; esac - command=${COMP_WORDS[1]} + command=${words[1]} if [[ "$cur" == -* ]]; then # possible options for the command @@ -173,7 +172,7 @@ _svk() -s --sync -m --merge -q --quiet' ;; esac - options="$options --help -h" + options+=" --help -h" COMPREPLY=( $( compgen -W "$options" -- "$cur" ) ) else @@ -216,10 +215,4 @@ _svk() } && complete -F _svk svk -# 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/completions/sync_members b/completions/sync_members new file mode 100644 index 00000000..77420f16 --- /dev/null +++ b/completions/sync_members @@ -0,0 +1,31 @@ +# mailman sync_members completion -*- shell-script -*- + +_sync_members() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -w|-g|-d|--welcome-msg|--goodbye-msg|--digest) + COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) + return 0 + ;; + -d|--file) + _filedir + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--no-change --welcome-msg \ + --goodbye-msg --digest --notifyadmin --file --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _sync_members sync_members + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/sysbench b/completions/sysbench index 3b309a9a..e3d666cb 100644 --- a/completions/sysbench +++ b/completions/sysbench @@ -1,19 +1,9 @@ -# bash completion for sysbench +# bash completion for sysbench -*- shell-script -*- -# We set -o nospace and turn it off in quite a few places for bash < 4 -# reasons; assuming bash >= 4 we could instead not turn it on -# initially but only in the few cases where it's actually needed. - -have sysbench && _sysbench() { - COMPREPLY=() - local cur prev words split=false - _get_comp_words_by_ref -n = cur prev words - - # long options need the "=" (whitespace split doesn't work), but we split - # internally to make processing easier - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return case $prev in --num-threads|--max-requests|--max-time|--thread-stack-size| \ @@ -21,12 +11,10 @@ _sysbench() return 0 ;; --init-rng|--debug|--validate) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) return 0 ;; --test) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'fileio cpu memory threads mutex oltp' \ -- "$cur" ) ) return 0 @@ -35,98 +23,80 @@ _sysbench() return 0 ;; --file-test-mode) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'seqwr seqrewr seqrd rndrd rndwr rndrw' \ -- "$cur" ) ) return 0 ;; --file-io-mode) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'sync async fastmmap slowmmap' \ -- "$cur" ) ) return 0 ;; --file-extra-flags) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'sync dsync direct' -- "$cur" ) ) return 0 ;; --file-fsync-all|--file-fsync-end) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) return 0 ;; --file-fsync-mode) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'fsync fdatasync' -- "$cur" ) ) return 0 ;; --memory-scope) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'global local' -- "$cur" ) ) return 0 ;; --memory-hugetlb) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) return 0 ;; --memory-oper) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'read write none' -- "$cur" ) ) return 0 ;; --memory-access-mode) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'seq rnd' -- "$cur" ) ) return 0 ;; --oltp-test-mode) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'simple complex nontrx sp' -- "$cur" ) ) return 0 ;; --oltp-read-only|--oltp-skip-trx|--oltp-quto-inc|--mysql-ssl) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) return 0 ;; --oltp-nontrx-mode) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'select update_key update_nokey insert delete' -- "$cur" ) ) return 0 ;; --oltp-dist-type) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'uniform gaussian special' -- "$cur" ) ) return 0 ;; --db-driver) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W "$( $1 --test=oltp help 2>/dev/null | sed -e '/^.*database drivers:/,/^$/!d' \ -ne 's/^ *\([^ ]*\) .*/\1/p' )" -- "$cur" ) ) return 0 ;; --db-ps-mode) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'auto disable' -- "$cur" ) ) return 0 ;; --mysql-socket) - compopt +o nospace &>/dev/null _filedir sock return 0 ;; --mysql-table-engine) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'myisam innodb bdb heap ndbcluster federated' -- "$cur" ) ) return 0 ;; --mysql-engine-trx) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'yes no auto' -- "$cur" ) ) return 0 ;; @@ -144,32 +114,20 @@ _sysbench() fi done - local opts="--num-threads= --max-requests= --max-time= --thread-stack-size= - --init-rng= --debug= --validate= --help --version" - + local opts=$( _parse_help "$1" ) if [[ $test ]]; then - local help=( $( _parse_help $1 "--test=$test help" ) ) - opts="$opts ${help[@]/%/=} prepare run cleanup help version" - else - opts="$opts --test=" + local help=( $( _parse_help "$1" "--test=$test help" ) ) + opts="${opts[@]/--test=/} ${help[@]} prepare run cleanup help version" fi if [[ "$cur" == -* || ! $test ]]; then COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) - [[ ${#COMPREPLY[@]} == 1 && ${COMPREPLY[0]} != *= ]] && \ - compopt +o nospace &>/dev/null + [[ $COMPREPLY == *= ]] && compopt -o nospace else - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W "prepare run cleanup help version" \ -- "$cur" ) ) fi } && -complete -F _sysbench -o nospace sysbench +complete -F _sysbench sysbench -# 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/completions/sysctl b/completions/sysctl index ac25f4ef..0ab37129 100644 --- a/completions/sysctl +++ b/completions/sysctl @@ -1,24 +1,29 @@ -# bash completion for sysctl +# bash completion for sysctl -*- shell-script -*- -have sysctl && _sysctl() { - local cur + local cur prev words cword + _init_completion || return - COMPREPLY=() - _get_comp_words_by_ref cur + case $prev in + -p) + _filedir conf + return + ;; + esac - COMPREPLY=( $( compgen -W \ - "$( PATH="$PATH:/sbin" sysctl -N -a 2>/dev/null )" -- "$cur" ) ) + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + else + local suffix= + [[ $prev == -w ]] && suffix== + COMPREPLY=( $( compgen -S "$suffix" -W \ + "$( PATH="$PATH:/sbin" sysctl -N -a 2>/dev/null )" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi return 0 } && complete -F _sysctl sysctl -# 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/completions/tar b/completions/tar index a5c02490..9d1c56a4 100644 --- a/completions/tar +++ b/completions/tar @@ -1,26 +1,41 @@ -# bash completion for GNU tar +# bash completion for GNU tar -*- shell-script -*- -have tar && { _tar() { - local cur ext regex tar untar + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur + local ext regex tar untar - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W 'c t x u r d A' -- "$cur" ) ) return 0 fi - case ${COMP_WORDS[1]} in - ?(-)[cr]*f) - _filedir + local tars='@(@(tar|gem|spkg)?(.@(Z|[gx]z|bz?(2)|lzma))|t@([glx]z|bz?(2)))' + + case ${words[1]} in + --*) + ;; + ?(-)*[cr]*f) + if [[ $cword -eq 2 ]]; then + ext='@(tar|gem|spkg)' + case ${words[1]} in + *a*) ext="$tars" ;; + *z*) ext='t?(ar.)gz' ;; + *Z*) ext='tar.Z' ;; + *[jy]*) ext='t?(ar.)bz?(2)' ;; + *J*) ext='t?(ar.)xz' ;; + esac + _filedir $ext + else + _filedir + fi return 0 ;; +([^IZzJjy])f) - ext='@(@(tar|gem|spkg)?(.@(Z|[gx]z|bz?(2)|lzma))|t@([glx]z|bz?(2)))' - regex='\(\(tar\|gem\|spkg\)\(\.\(Z\|[gx]z\|bz?(2)\|lzma\)\)\?\|t\([glx]z\|bz2\?\)\)' + ext="$tars" + regex='\(\(tar\|gem\|spkg\)\(\.\(Z\|[gx]z\|bz2\?\|lzma\)\)\?\|t\([glx]z\|bz2\?\)\)' ;; *[Zz]*f) ext='@(t?(ar.)|gem.|spkg.)@(gz|Z)' @@ -40,19 +55,71 @@ _tar() ;; esac - if [[ "$COMP_LINE" == *$ext' ' ]]; then - # complete on files in tar file - # - # get name of tar file from command line - tar=$( sed -e 's/^.* \([^ ]*'$regex'\) .*$/\1/' <<<"$COMP_LINE" ) - # devise how to untar and list it - untar=t${COMP_WORDS[1]//[^Izjyf]/} + case $prev in + *$ext) + # complete on files in tar file + # + # get name of tar file from command line + tar=$( sed -e 's/^.* \([^ ]*'$regex'\) .*$/\1/' <<<"${words[@]}" ) + # devise how to untar and list it + untar=t${words[1]//[^IJzjyf]/} - local IFS=$'\n' - COMPREPLY=( $( compgen -W "$( printf '%s\n' $( tar $untar $tar \ - 2>/dev/null ) )" -- "$cur" ) ) - return 0 - fi + local IFS=$'\n' + COMPREPLY=( $( compgen -W "$( printf '%s\n' $( tar $untar $tar \ + 2>/dev/null ) )" -- "$cur" ) ) + return 0 + ;; + -C|--directory) + _filedir -d + return 0 + ;; + --atime-preserve) + COMPREPLY=( $( compgen -W 'replace system' -- "$cur" ) ) + return 0 + ;; + --group) + COMPREPLY=( $( compgen -g -- "$cur" ) ) + return 0 + ;; + --owner) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + -F|--info-script|--new-volume-script|--rmt-command|--rsh-command|\ + -I|--use-compress-program) + compopt -o filenames + COMPREPLY=( $( compgen -c -- "$cur" ) ) + return 0 + ;; + --volno-file|--add-file|-T|--files-from|-X|--exclude-from|--index-file) + _filedir + return 0 + ;; + -H|--format) + COMPREPLY=( $( compgen -W 'gnu oldgnu pax posix ustar v7' \ + -- "$cur" ) ) + return 0 + ;; + --quoting-style) + COMPREPLY=( $( compgen -W 'literal shell shell-always c c-maybe + escape locale clocale' -- "$cur" ) ) + return 0 + ;; + --totals) + COMPREPLY=( $( compgen -W 'SIGHUP SIGQUIT SIGINT SIGUSR1 SIGUSR2' \ + -- "$cur" ) ) + return 0 + ;; + --occurrence|--sparse-version|--to-command|--mode|--mtime|\ + --tape-length|-b|--blocking-factor|--record-size|-V|--text|--backup|\ + --exclude|--exclude-tag*|-K|--starting-file|-N|--newer|--after-date|\ + --suffix|--strip-components|--transform|--xform|--checkpoint|\ + --checkpoint-action|--no-quote-chars|--quote-chars|--warnings) + return 0 + ;; + esac + + $split && return 0 # file completion on relevant files _filedir "$ext" @@ -61,12 +128,5 @@ _tar() } [ -n "${COMP_TAR_INTERNAL_PATHS:-}" ] && complete -F _tar -o dirnames tar || complete -F _tar tar -} -# 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/completions/tcpdump b/completions/tcpdump index 259f13e0..8fe4ed63 100644 --- a/completions/tcpdump +++ b/completions/tcpdump @@ -1,12 +1,9 @@ -# bash completion for tcpdump +# bash completion for tcpdump -*- shell-script -*- -have tcpdump && _tcpdump() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -r|-w|-F) @@ -17,21 +14,33 @@ _tcpdump() _available_interfaces -a return 0 ;; + -m) + _filedir mib + return 0 + ;; + -T) + COMPREPLY=( $( compgen -W 'aodv cnfp rpc rtp rtcp snmp tftp vat + wb' -- "$cur" ) ) + return 0 + ;; + -z) + COMPREPLY=( $( compgen -c -- "$cur" ) ) + return 0 + ;; + -Z) + _allowed_users + return 0 + ;; + -B|-c|-C|-D|-E|-G|-M|-s|-W|-y) + return 0 + ;; esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -d -e -f -l -n -N -O -p \ - -q -R -S -t -u -v -x -C -F -i -m -r -s -T -w -E' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) fi } && complete -F _tcpdump tcpdump -# 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/completions/tcpkill b/completions/tcpkill new file mode 100644 index 00000000..82420230 --- /dev/null +++ b/completions/tcpkill @@ -0,0 +1,22 @@ +# tcpkill completion -*- shell-script -*- + +_tcpkill() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _interfaces + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-i -1 -2 -3 -4 -5 -6 -7 -8 -9' -- "$cur" ) ) + fi + +} && +complete -F _tcpkill tcpkill + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/tcpnice b/completions/tcpnice new file mode 100644 index 00000000..03c23e5e --- /dev/null +++ b/completions/tcpnice @@ -0,0 +1,22 @@ +# tcpnice completion -*- shell-script -*- + +_tcpnice() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _interfaces + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi + +} && +complete -F _tcpnice tcpnice + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/tracepath b/completions/tracepath new file mode 100644 index 00000000..1861b6a2 --- /dev/null +++ b/completions/tracepath @@ -0,0 +1,23 @@ +# tracepath(8) completion -*- shell-script -*- + +_tracepath() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -l) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return + fi + + _known_hosts_real "$cur" +} && +complete -F _tracepath tracepath tracepath6 + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/tune2fs b/completions/tune2fs new file mode 100644 index 00000000..ee88b45d --- /dev/null +++ b/completions/tune2fs @@ -0,0 +1,58 @@ +# tune2fs(8) completion -*- shell-script -*- + +_tune2fs() +{ + local cur prev words cword + _init_completion || return + + 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 ^dir_nlink ^extent ^extra_isize ^filetype + ^flex_bg ^has_journal ^huge_file ^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 '$( _parse_usage "$1" )' -- "$cur" ) ) + return + fi + + cur=${cur:=/dev/} + _filedir +} && +complete -F _tune2fs tune2fs + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/unace b/completions/unace index 9d27ef50..4ce5e370 100644 --- a/completions/unace +++ b/completions/unace @@ -1,17 +1,14 @@ -# unace(1) completion +# unace(1) completion -*- shell-script -*- -have unace && _unace() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]] ; then COMPREPLY=( $( compgen -W '-c -c- -f -f- -o -o- -p -y -y-' -- "$cur" ) ) else - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W 'e l t v x' -- "$cur" ) ) else _filedir ace @@ -20,10 +17,4 @@ _unace() } && complete -F _unace unace -# 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/completions/unpack200 b/completions/unpack200 new file mode 100644 index 00000000..de708fe8 --- /dev/null +++ b/completions/unpack200 @@ -0,0 +1,48 @@ +# unpack200(1) completion -*- shell-script -*- + +_unpack200() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + '-?'|-h|--help|-V|--version|-J) + return 0 + ;; + -H|--deflate-hint) + COMPREPLY=( $( compgen -W 'true false keep' -- "$cur" ) ) + return 0 + ;; + -l|--log-file) + COMPREPLY=( $( compgen -W '-' -- "$cur" ) ) + _filedir log + return 0 + ;; + esac + + $split && return + + # Check if a pack or a jar was already given. + local i pack=false jar=false + for (( i=0; i < ${#words[@]}-1; i++ )) ; do + case ${words[i]} in + *.pack|*.pack.gz) pack=true ;; + *.jar) jar=true ;; + esac + done + + if ! $pack ; then + if [[ "$cur" == -* ]] ; then + COMPREPLY=( $( compgen -W '--deflate-hint= --remove-pack-file \ + --verbose --quiet --log-file= --help --version' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + else + _filedir 'pack?(.gz)' + fi + elif ! $jar ; then + _filedir jar + fi +} && +complete -F _unpack200 unpack200 + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/unrar b/completions/unrar index 0a4fe27a..d99e62fe 100644 --- a/completions/unrar +++ b/completions/unrar @@ -1,19 +1,16 @@ -# unrar(1) completion +# unrar(1) completion -*- shell-script -*- -have unrar && _unrar() { - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]] ; then COMPREPLY=( $( compgen -W '-ad -ap -av- -c- -cfg- -cl -cu \ -dh -ep -f -idp -ierr -inul -kb -o+ -o- -ow -p -p- -r -ta \ -tb -tn -to -u -v -ver -vp -x -x@ -y' -- "$cur" ) ) else - if [ $COMP_CWORD -eq 1 ]; then + if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W 'e l lb lt p t v vb vt x' -- "$cur" ) ) else _filedir rar @@ -23,10 +20,4 @@ _unrar() } && complete -F _unrar unrar -# 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/completions/unshunt b/completions/unshunt new file mode 100644 index 00000000..6e208d0c --- /dev/null +++ b/completions/unshunt @@ -0,0 +1,17 @@ +# mailman unshunt completion -*- shell-script -*- + +_unshunt() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help' -- "$cur" ) ) + else + _filedir -d + fi + +} && +complete -F _unshunt unshunt + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/update-alternatives b/completions/update-alternatives index ebed294d..523e1de5 100644 --- a/completions/update-alternatives +++ b/completions/update-alternatives @@ -1,6 +1,5 @@ -# bash completion for update-alternatives +# bash completion for update-alternatives -*- shell-script -*- -have update-alternatives && { _installed_alternatives() { local admindir @@ -8,9 +7,9 @@ _installed_alternatives() for i in alternatives dpkg/alternatives rpm/alternatives; do [ -d /var/lib/$i ] && admindir=/var/lib/$i && break done - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == --admindir ]]; then - admindir=${COMP_WORDS[i+1]} + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == --admindir ]]; then + admindir=${words[i+1]} break fi done @@ -19,10 +18,8 @@ _installed_alternatives() _update_alternatives() { - local cur prev mode args i - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --altdir|--admindir) @@ -34,11 +31,13 @@ _update_alternatives() ;; esac + local mode args i + # find which mode to use and how many real args used so far - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == --@(install|remove|auto|display|config|remove-all|set) ]]; then - mode=${COMP_WORDS[i]} - args=$(($COMP_CWORD - i)) + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == --@(install|remove|auto|display|config|remove-all|set) ]]; then + mode=${words[i]} + args=$(($cword - i)) break fi done @@ -87,14 +86,7 @@ _update_alternatives() --altdir --admindir --install --remove --auto --display \ --config --set' -- "$cur" ) ) esac -} +} && complete -F _update_alternatives update-alternatives alternatives -} -# 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/completions/sysv-rc b/completions/update-rc.d index 735a4042..b1d21e86 100644 --- a/completions/sysv-rc +++ b/completions/update-rc.d @@ -1,29 +1,29 @@ -# update-rc.d(8) completion +# update-rc.d(8) completion -*- shell-script -*- # # Copyright (C) 2004 Servilio Afre Puentes <servilio@gmail.com> -have update-rc.d && _update_rc_d() { - local cur prev sysvdir services options valid_options + local cur prev words cword + _init_completion || return - _get_comp_words_by_ref cur prev + local sysvdir services options valid_options [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \ || sysvdir=/etc/init.d - services=( $(printf '%s ' $sysvdir/!(README*|*.sh|*.dpkg*|*.rpm@(orig|new|save))) ) + services=( $(printf '%s ' $sysvdir/!(README*|*.sh|$_backup_glob)) ) services=( ${services[@]#$sysvdir/} ) options=( -f -n ) - if [[ $COMP_CWORD -eq 1 || "$prev" == -* ]]; then + if [[ $cword -eq 1 || "$prev" == -* ]]; then valid_options=( $( \ - tr " " "\n" <<<"${COMP_WORDS[@]} ${options[@]}" \ + tr " " "\n" <<<"${words[@]} ${options[@]}" \ | sed -ne "/$( sed "s/ /\\|/g" <<<"${options[@]}" )/p" \ | sort | uniq -u \ ) ) COMPREPLY=( $( compgen -W '${options[@]} ${services[@]}' \ - -X '$( tr " " "|" <<<${COMP_WORDS[@]} )' -- "$cur" ) ) + -X '$( tr " " "|" <<<${words[@]} )' -- "$cur" ) ) elif [[ "$prev" == ?($( tr " " "|" <<<${services[@]} )) ]]; then COMPREPLY=( $( compgen -W 'remove defaults start stop' -- "$cur" ) ) elif [[ "$prev" == defaults && "$cur" == [0-9] ]]; then @@ -62,49 +62,4 @@ _update_rc_d() } && complete -F _update_rc_d update-rc.d -# invoke-rc.d(8) completion -# -# Copyright (C) 2004 Servilio Afre Puentes <servilio@gmail.com> -# -have invoke-rc.d && -_invoke_rc_d() -{ - local cur prev sysvdir services options valid_options - - _get_comp_words_by_ref cur prev - - [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \ - || sysvdir=/etc/init.d - - services=( $( printf '%s ' \ - $sysvdir/!(README*|*.sh|*.dpkg*|*.rpm@(orig|new|save)) ) ) - services=( ${services[@]#$sysvdir/} ) - options=( --help --quiet --force --try-anyway --disclose-deny --query \ - --no-fallback ) - - if [[ ($COMP_CWORD -eq 1) || ("$prev" == --* ) ]]; then - valid_options=( $( \ - tr " " "\n" <<<"${COMP_WORDS[@]} ${options[@]}" \ - | sed -ne "/$( sed "s/ /\\\\|/g" <<<"${options[@]}" )/p" \ - | sort | uniq -u \ - ) ) - COMPREPLY=( $( compgen -W '${valid_options[@]} ${services[@]}' -- "$cur" ) ) - elif [ -x $sysvdir/$prev ]; then - COMPREPLY=( $( compgen -W '`sed -e "y/|/ /" \ - -ne "s/^.*Usage:[ ]*[^ ]*[ ]*{*\([^}\"]*\).*$/\1/p" \ - $sysvdir/$prev`' -- "$cur" ) ) - else - COMPREPLY=() - fi - - return 0 -} && -complete -F _invoke_rc_d invoke-rc.d - -# 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/completions/upgradepkg b/completions/upgradepkg new file mode 100644 index 00000000..06dbe571 --- /dev/null +++ b/completions/upgradepkg @@ -0,0 +1,17 @@ +# Slackware Linux upgradepkg completion -*- shell-script -*- + +_upgradepkg() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--dry-run --install-new --reinstall \ + --verbose' -- "$cur") ) + return 0 + fi + + _filedir "t[bglx]z" +} && complete -F _upgradepkg upgradepkg + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/urlsnarf b/completions/urlsnarf new file mode 100644 index 00000000..bb1a29ef --- /dev/null +++ b/completions/urlsnarf @@ -0,0 +1,22 @@ +# urlsnarf completion -*- shell-script -*- + +_urlsnarf() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _interfaces + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi + +} && +complete -F _urlsnarf urlsnarf + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/useradd b/completions/useradd new file mode 100644 index 00000000..2a61c948 --- /dev/null +++ b/completions/useradd @@ -0,0 +1,45 @@ +# useradd(8) completion -*- shell-script -*- + +_useradd() +{ + local cur prev words cword split + _init_completion -s || return + + # TODO: if -o/--non-unique is given, could complete on existing uids + # with -u/--uid + + case $prev in + -c|--comment|-h|--help|-e|--expiredate|-f|--inactive|-k|--key|\ + -p|--password|-u|--uid|-Z|--selinux-user) + return 0 + ;; + -b|--base-dir|-d|--home|-k|--skel) + _filedir -d + return 0 + ;; + -g|--gid) + _gids + COMPREPLY=( $( compgen -W '${COMPREPLY[@]} $( compgen -g )' \ + -- "$cur" ) ) + return 0 + ;; + -G|--groups) + COMPREPLY=( $( compgen -g -- "$cur" ) ) + return 0 + ;; + -s|--shell) + _shells + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi +} && +complete -F _useradd useradd + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/userdel b/completions/userdel new file mode 100644 index 00000000..aafd00eb --- /dev/null +++ b/completions/userdel @@ -0,0 +1,17 @@ +# userdel(8) completion -*- shell-script -*- + +_userdel() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + + COMPREPLY=( $( compgen -u -- "$cur" ) ) +} && +complete -F _userdel userdel + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/usermod b/completions/usermod new file mode 100644 index 00000000..f8cd9e0e --- /dev/null +++ b/completions/usermod @@ -0,0 +1,44 @@ +# usermod(8) completion -*- shell-script -*- + +_usermod() +{ + local cur prev words cword split + _init_completion -s || return + + # TODO: if -o/--non-unique is given, could complete on existing uids + # with -u/--uid + + case $prev in + -c|--comment|-d|--home|-e|--expiredate|-f|--inactive|-h|--help|\ + -l|--login|-p|--password|-u|--uid|-Z|--selinux-user) + return 0 + ;; + -g|--gid) + _gids + COMPREPLY=( $( compgen -W '${COMPREPLY[@]} $( compgen -g )' \ + -- "$cur" ) ) + return 0 + ;; + -G|--groups) + COMPREPLY=( $( compgen -g -- "$cur" ) ) + return 0 + ;; + -s|--shell) + _shells + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + # TODO: -U/--unlock, -p/--password, -L/--lock mutually exclusive + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + + COMPREPLY=( $( compgen -u -- "$cur" ) ) +} && +complete -F _usermod usermod + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/util-linux b/completions/util-linux deleted file mode 100644 index f45ffd56..00000000 --- a/completions/util-linux +++ /dev/null @@ -1,76 +0,0 @@ -# Completions for tools included in util-linux (not necessarily Linux specific) - -# renice(8) completion -# -have renice && -_renice() -{ - local command cur curopt i - - COMPREPLY=() - _get_comp_words_by_ref cur - command=$1 - - i=0 - # walk back through command line and find last option - while [[ $i -le $COMP_CWORD && ${#COMPREPLY[@]} -eq 0 ]]; do - curopt=${COMP_WORDS[COMP_CWORD-$i]} - case "$curopt" in - -u) - _allowed_users - ;; - -g) - _pgids - ;; - -p|$command) - _pids - ;; - esac - i=$(( ++i )) - done -} && -complete -F _renice renice - -# kill(1) completion -# -have kill && -_kill() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [[ $COMP_CWORD -eq 1 && "$cur" == -* ]]; then - # return list of available signals - _signals - else - # return list of available PIDs - _pids - fi -} && -complete -F _kill kill - -# look(1) completion -# -have look && -_look() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [ $COMP_CWORD = 1 ]; then - COMPREPLY=( $( compgen -W '$(look "$cur" 2>/dev/null)' -- "$cur" ) ) - fi -} && -complete -F _look -o default look - -# 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/completions/vipw b/completions/vipw new file mode 100644 index 00000000..4205cee2 --- /dev/null +++ b/completions/vipw @@ -0,0 +1,21 @@ +# vipw(8) and vigr completion -*- shell-script -*- + +_vipw() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -h|--help) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi +} && +complete -F _vipw vipw vigr + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/vncviewer b/completions/vncviewer index 296eb8af..46d6c617 100644 --- a/completions/vncviewer +++ b/completions/vncviewer @@ -1,6 +1,5 @@ -# bash completion for vncviewer +# bash completion for vncviewer -*- shell-script -*- -have vncviewer && _vncviewer_bootstrap() { local fname @@ -17,13 +16,10 @@ _vncviewer_bootstrap() } && complete -F _vncviewer_bootstrap vncviewer -have tightvncviewer && _tightvncviewer() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -passwd) @@ -58,13 +54,10 @@ complete -F _tightvncviewer tightvncviewer # NOTE: - VNC Viewer options are case insensitive. # Preferred case is taken from -help. # - Both single dash (-) and double dash (--) are allowed as option prefix -have xvnc4viewer && _xvnc4viewer() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return # Convert double dash to single dash case ${prev/#--/-} in @@ -98,33 +91,17 @@ _xvnc4viewer() ZlibLevel \ ) [[ "$cur" == --* ]] && dash=-- || dash=- - # Is a `nocasematch' variable available (bash > v3.1)? - if shopt nocasematch 2> /dev/null | command grep -q ^nocasematch; then - # Variable `nocasematch' is available - # Use vncviewer camelcase options - local option oldNoCaseMatch=$(shopt -p nocasematch) - shopt -s nocasematch - COMPREPLY=( $( for option in "${options[@]}"; do + + local option oldNoCaseMatch=$(shopt -p nocasematch) + shopt -s nocasematch + COMPREPLY=( $( for option in "${options[@]}"; do [[ $dash$option == "$cur"* ]] && printf '%s\n' $dash$option done ) ) - eval "$oldNoCaseMatch" 2> /dev/null - else - # Variable 'nocasematch' isn't available; - # Convert completions to lowercase - COMPREPLY=( $( compgen -W \ - "$( tr [:upper:] [:lower:] <<<${options[@]/#/$dash} )" \ - -- "$( tr [:upper:] [:lower:] <<<"$cur" )" ) ) - fi + eval "$oldNoCaseMatch" 2>/dev/null else _known_hosts_real "$cur" fi } && complete -F _xvnc4viewer xvnc4viewer -# 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/completions/vpnc b/completions/vpnc index 722fee3a..0465c31e 100644 --- a/completions/vpnc +++ b/completions/vpnc @@ -1,12 +1,9 @@ -# bash completion for vpnc +# bash completion for vpnc -*- shell-script -*- -have vpnc && _vpnc() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --pfs) @@ -40,10 +37,4 @@ _vpnc() } && complete -F _vpnc vpnc -# 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/completions/watch b/completions/watch new file mode 100644 index 00000000..c2832dd8 --- /dev/null +++ b/completions/watch @@ -0,0 +1,54 @@ +# watch(1) completion -*- shell-script -*- + +[[ $OSTYPE == *linux* ]] || return 1 + +_watch() +{ + local cur prev words cword split + _init_completion -s || return + + local offset=0 i + for (( i=1; i <= cword; i++ )); do + case ${words[i]} in + -h|--help|--version) + return + ;; + -n|--interval) + (( i++ )) + continue + ;; + -*) + continue + ;; + esac + offset=$i + break + done + + if [[ $offset -gt 0 ]]; then + _command_offset $offset + return + fi + + case $prev in + -d|--differences) + [[ $cur != -* ]] && \ + COMPREPLY=( $( compgen -W 'cumulative' -- "$cur" ) ) + return + ;; + -n|--interval) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi +} && +complete -F _watch watch + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/webmitm b/completions/webmitm new file mode 100644 index 00000000..68440631 --- /dev/null +++ b/completions/webmitm @@ -0,0 +1,17 @@ +# webmitm completion -*- shell-script -*- + +_webmitm() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + else + _known_hosts_real "$cur" + fi + +} && +complete -F _webmitm webmitm + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/wireless-tools b/completions/wireless-tools deleted file mode 100644 index 56ba0db8..00000000 --- a/completions/wireless-tools +++ /dev/null @@ -1,180 +0,0 @@ -# bash completion for Linux wireless-tools - -[ $UNAME = Linux ] && -{ - -have iwconfig && -_iwconfig() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - mode) - COMPREPLY=( $( compgen -W 'managed ad-hoc master \ - repeater secondary monitor' -- "$cur" ) ) - return 0 - ;; - essid) - COMPREPLY=( $( compgen -W 'on off any' -- "$cur" ) ) - if [ -n "${COMP_IWLIST_SCAN:-}" ]; then - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W \ - "$( iwlist ${COMP_WORDS[1]} scan | \ - awk -F'\"' '/ESSID/ {print $2}' )" -- "$cur" ) ) - fi - return 0 - ;; - nwid) - COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) - return 0 - ;; - channel) - COMPREPLY=( $( compgen -W "$( iwlist ${COMP_WORDS[1]} channel | \ - awk '/^[ \t]*Channel/ {print $2}' )" -- "$cur" ) ) - return 0 - ;; - - freq) - COMPREPLY=( $( compgen -W "$( iwlist ${COMP_WORDS[1]} channel | \ - awk '/^[ \t]*Channel/ {print $4"G"}')" -- "$cur" ) ) - return 0 - ;; - ap) - COMPREPLY=( $( compgen -W 'on off any' -- "$cur" ) ) - if [ -n "${COMP_IWLIST_SCAN:-}" ]; then - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W \ - "$( iwlist ${COMP_WORDS[1]} scan | \ - awk -F ': ' '/Address/ {print $2}' )" -- "$cur" ) ) - fi - return 0 - ;; - rate) - COMPREPLY=( $( compgen -W 'auto fixed' -- "$cur" ) ) - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W \ - "$( iwlist ${COMP_WORDS[1]} rate | \ - awk '/^[ \t]*[0-9]/ {print $1"M"}' )" -- "$cur" ) ) - return 0 - ;; - rts|frag) - COMPREPLY=( $( compgen -W 'auto fixed off' -- "$cur" ) ) - return 0 - ;; - key|enc) - COMPREPLY=( $( compgen -W 'off on open restricted' -- "$cur" ) ) - return 0 - ;; - power) - COMPREPLY=( $( compgen -W 'period timeout off on' -- "$cur" ) ) - return 0 - ;; - txpower) - COMPREPLY=( $( compgen -W 'off on auto' -- "$cur" ) ) - return 0 - ;; - retry) - COMPREPLY=( $( compgen -W 'limit lifetime' -- "$cur" ) ) - return 0 - ;; - esac - - if [ $COMP_CWORD -eq 1 ]; then - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) - else - _available_interfaces -w - fi - else - COMPREPLY=( $( compgen -W 'essid nwid mode freq channel sens mode \ - ap nick rate rts frag enc key power txpower commit' -- "$cur" ) ) - fi - -} && -complete -F _iwconfig iwconfig - - -have iwlist && -_iwlist() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - if [ $COMP_CWORD -eq 1 ]; then - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) - else - _available_interfaces -w - fi - else - COMPREPLY=( $( compgen -W 'scan scanning freq frequency \ - channel rate bit bitrate key enc encryption power \ - txpower retry ap accesspoint peers event' -- "$cur" ) ) - fi -} && -complete -F _iwlist iwlist - - -have iwspy && -_iwspy() -{ - local cur - - COMPREPLY=() - _get_comp_words_by_ref cur - - if [ $COMP_CWORD -eq 1 ]; then - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) - else - _available_interfaces -w - fi - else - COMPREPLY=( $( compgen -W 'setthr getthr off' -- "$cur" ) ) - fi -} && -complete -F _iwspy iwspy - - -have iwpriv && -_iwpriv() -{ - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev - - case $prev in - roam) - COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) - return 0 - ;; - port) - COMPREPLY=( $( compgen -W 'ad-hoc managed' -- "$cur" ) ) - return 0 - ;; - esac - - if [ $COMP_CWORD -eq 1 ]; then - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) - else - _available_interfaces -w - fi - else - COMPREPLY=( $( compgen -W '--all roam port' -- "$cur" ) ) - fi -} && -complete -F _iwpriv iwpriv - -} - -# 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/completions/withlist b/completions/withlist new file mode 100644 index 00000000..a48d7ea5 --- /dev/null +++ b/completions/withlist @@ -0,0 +1,18 @@ +# mailman withlist completion -*- shell-script -*- + +_withlist() +{ + local cur prev words cword + _init_completion || return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--lock --interactive \ + --run --all --quiet --help' -- "$cur" ) ) + else + _xfunc list_lists _mailman_lists + fi + +} && +complete -F _withlist withlist + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/wodim b/completions/wodim index abc0ff25..3bc304d1 100644 --- a/completions/wodim +++ b/completions/wodim @@ -1,16 +1,11 @@ -# bash completion for cdrecord/wodim +# bash completion for cdrecord/wodim -*- shell-script -*- -# We set -o nospace and turn it off in several places for bash < 4 -# reasons; assuming bash >= 4 we could instead not turn it on -# initially but only in the few cases where it's actually needed. - -have cdrecord || have wodim && _cdrecord() { - local cur prev i generic_options track_options track_mode + local cur prev words cword + _init_completion -n = || return - COMPREPLY=() - _get_comp_words_by_ref -n = cur prev + local i generic_options track_options track_mode # foo=bar style option if [[ "$cur" == *=* ]]; then @@ -18,11 +13,9 @@ _cdrecord() cur=${cur#*=} case $prev in textfile|cuefile|msifile) - compopt +o nospace &>/dev/null _filedir ;; blank) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W 'help all fast track unreserve trtail unclose session' -- "$cur" ) ) ;; @@ -32,17 +25,14 @@ _cdrecord() cur=${cur#*=} case $prev in varirec) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W "-2 -1 0 1 2" \ -- "$cur" ) ) ;; gigarec) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W "0.6 0.7 0.8 1.0 1.2 1.3 1.4" -- "$cur" ) ) ;; tattoofile) - compopt +o nospace &>/dev/null _filedir ;; esac @@ -51,19 +41,15 @@ _cdrecord() gigarec= audiomaster forcespeed noforcespeed speedread nospeedread singlesession nosinglesession hidecdr nohidecdr tattooinfo tattoofile=' -- "$cur" ) ) - [[ ${#COMPREPLY[@]} == 1 && ${COMPREPLY[0]} != *= ]] && \ - compopt +o nospace &>/dev/null + [[ $COMPREPLY == *= ]] && compopt -o nospace fi ;; driver) - compopt +o nospace &>/dev/null COMPREPLY=( $( compgen -W "$( $1 driver=help 2>&1 | \ awk 'NR > 1 { print $1 }' ) help" -- "$cur" ) ) ;; minbuf) - compopt +o nospace &>/dev/null - COMPREPLY=( $( compgen -W "$( seq 25 95 2>/dev/null )" \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '{25..95}' -- "$cur" ) ) ;; esac return 0 @@ -81,7 +67,7 @@ _cdrecord() -copy -nocopy -scms isrc= index= padsize= pregap= tsize= ) # look if previous was either a file or a track option track_mode=0 - if [ $COMP_CWORD -gt 1 ]; then + if [ $cword -gt 1 ]; then if [ -f "$prev" ]; then track_mode=1 else @@ -97,22 +83,13 @@ _cdrecord() # files are always eligible completion _filedir # track options are always available - COMPREPLY=( "${COMPREPLY[@]}" \ - $( compgen -W '${track_options[@]}' -- "$cur" ) ) + COMPREPLY+=( $( compgen -W '${track_options[@]}' -- "$cur" ) ) # general options are no more available after file or track option if [ $track_mode -eq 0 ]; then - COMPREPLY=( "${COMPREPLY[@]}" \ - $( compgen -W '${generic_options[@]}' -- "$cur" ) ) + COMPREPLY+=( $( compgen -W '${generic_options[@]}' -- "$cur" ) ) fi - [[ ${#COMPREPLY[@]} == 1 && ${COMPREPLY[0]} != *= ]] && \ - compopt +o nospace &>/dev/null + [[ $COMPREPLY == *= ]] && compopt -o nospace } && -complete -F _cdrecord -o nospace cdrecord wodim +complete -F _cdrecord cdrecord wodim -# 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/completions/wol b/completions/wol index 89a1a8ba..02030aba 100644 --- a/completions/wol +++ b/completions/wol @@ -1,12 +1,9 @@ -# wol(1) completion +# wol(1) completion -*- shell-script -*- -have wol && _wol() { - local cur prev split=false - COMPREPLY=() - _get_comp_words_by_ref -n : cur prev - _split_longopt && split=true + local cur prev words cword split + _init_completion -s -n : || return case $prev in -V|--version|--help|-p|--port|--passwd|-w|--wait) @@ -29,8 +26,8 @@ _wol() $split && return 0 if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version --verbose --wait --host - --port --file --passwd' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 fi @@ -38,10 +35,4 @@ _wol() } && complete -F _wol wol -# 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/completions/wtf b/completions/wtf index a611978d..b176d09b 100644 --- a/completions/wtf +++ b/completions/wtf @@ -1,18 +1,17 @@ -# wtf completion +# wtf completion -*- shell-script -*- # Raphael Droz, 25/09/2009 -have wtf && _wtf() { - local cur prev db - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return [ "$prev" = -f ] && _filedir && return 0 [[ "$cur" == -* ]] && COMPREPLY=( -f ) && return 0 - set -- "${COMP_WORDS[@]}" + local db + + set -- "${words[@]}" while [ $# -gt 0 ]; do if [ "$1" = -f ]; then shift ; db=$1 ; break @@ -21,16 +20,8 @@ _wtf() done [ -z $db ] && db=${ACRONYMDB:-/usr/share/misc/acronyms*} - [ ${BASH_VERSINFO[0]} -ge 4 ] && cur="${cur^^}" - - COMPREPLY=( $( compgen -W "$( cut -f 1 -s $db ) -f" -- "${cur}" ) ) + COMPREPLY=( $( compgen -W "$( cut -f 1 -s $db ) -f" -- "${cur^^}" ) ) } && complete -F _wtf wtf -# 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/completions/wvdial b/completions/wvdial index 3b135f0a..da2dbfb3 100644 --- a/completions/wvdial +++ b/completions/wvdial @@ -1,12 +1,9 @@ -# bash completion for wvdial +# bash completion for wvdial -*- shell-script -*- -have wvdial && _wvdial() { - local cur prev config i IFS=$'\n' - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword split + _init_completion -s || return case $prev in --config) @@ -15,19 +12,22 @@ _wvdial() ;; esac + $split && return + + local config i IFS=$'\n' + case $cur in -*) - COMPREPLY=( $( compgen -W '--config --chat \ - --remotename --help --version --no-syslog' \ - -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace ;; *) # start with global and personal config files config="/etc/wvdial.conf"$'\n'"$HOME/.wvdialrc" # replace with command line config file if present - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == "--config" ]]; then - config=${COMP_WORDS[i+1]} + for (( i=1; i < cword; i++ )); do + if [[ "${words[i]}" == "--config" ]]; then + config=${words[i+1]} break fi done @@ -43,10 +43,4 @@ _wvdial() } && complete -F _wvdial wvdial -# 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/completions/freerdp b/completions/xfreerdp index 82a46462..0dfb8537 100644 --- a/completions/freerdp +++ b/completions/xfreerdp @@ -1,12 +1,9 @@ -# bash completion for xfreerdp +# xfreerdp completion -*- shell-script -*- -have xfreerdp && _xfreerdp() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -k) @@ -38,10 +35,4 @@ _xfreerdp() } && 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 diff --git a/completions/xgamma b/completions/xgamma new file mode 100644 index 00000000..4c434cfe --- /dev/null +++ b/completions/xgamma @@ -0,0 +1,57 @@ +# bash completion for xgamma(1) -*- shell-script -*- + +_xgamma() +{ + local cur prev words cword + _init_completion -n : || return + + case "$prev" in + -screen) + local screens=$(xrandr --query 2>/dev/null | \ + sed -n '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null) + COMPREPLY=( $(compgen -W "$screens" -- "$cur")) + return + ;; + -gamma|-rgamma|-ggamma|-bgamma) + # expect f.f + if [[ $cur && "$cur" != *.* ]]; then + COMPREPLY=( . ) + fi + COMPREPLY+=( $(compgen -W "{0..9}") ) + compopt -o nospace + return + ;; + -display) + # expect hostname:displaynumber.screennumber + if [[ "$cur" == :* && "$cur" != :*.* ]]; then + # FIXME: where to get local display numbers? + local display=${cur#:} + COMPREPLY=( $(compgen -W "${display:-0}.") ) + compopt -o nospace + elif [[ "$cur" == :*.* ]]; then + # local screen numbers + local t screens=$(xrandr --query 2>/dev/null | sed -n \ + -e '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null) + t="${cur#:}" + COMPREPLY=( $(compgen -P "${t%.*}." -W "$screens" -- "${cur##*.}")) + elif [[ "$cur" != *:* ]]; then + # complete hostnames + _known_hosts_real -c "$cur" + if [[ ! $cur ]]; then + COMPREPLY+=( : ) + fi + compopt -o nospace + fi + # no dislpay completion for remote hosts + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + [[ $COMPREPLY ]] && return + fi +} && complete -F _xgamma xgamma + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/xhost b/completions/xhost index cec4adcf..397ca9ce 100644 --- a/completions/xhost +++ b/completions/xhost @@ -1,10 +1,9 @@ -# xhost(1) completion +# xhost(1) completion -*- shell-script -*- -have xhost && _xhost () { - local cur - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return case $cur in +*) _known_hosts_real -p+ "${cur:1}" ;; @@ -16,10 +15,4 @@ _xhost () } && complete -F _xhost xhost -# 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/completions/xm b/completions/xm index f9f69a29..37bd3d02 100644 --- a/completions/xm +++ b/completions/xm @@ -1,6 +1,5 @@ -# bash completion for xm +# bash completion for xm -*- shell-script -*- -have xm && { _xen_domain_names() { COMPREPLY=( $(compgen -W "$( xm list 2>/dev/null | \ @@ -15,12 +14,12 @@ _xen_domain_ids() _xm() { - # TODO: _split_longopt + local cur prev words cword + _init_completion || return - local cur prev command options + # TODO: _split_longopt - COMPREPLY=() - _get_comp_words_by_ref cur prev + local command options commands='console vncviewer create new delete destroy domid domname \ dump-core list mem-max mem-set migrate pause reboot rename reset \ @@ -33,7 +32,7 @@ _xm() labels addlabel rmlabel getlabel dry-run resources dumppolicy \ setpolicy resetpolicy getpolicy shell help' - if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ $cword -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) ) else if [[ "$cur" == *=* ]]; then @@ -41,7 +40,7 @@ _xm() cur=${cur/*=/} fi - command=${COMP_WORDS[1]} + command=${words[1]} if [[ "$cur" == -* ]]; then # possible options for the command case $command in @@ -192,7 +191,7 @@ _xm() ;; create) _filedir - COMPREPLY=( ${COMPREPLY[@]:-} \ + COMPREPLY+=( \ $( compgen -W '$( command ls /etc/xen 2>/dev/null )' \ -- "$cur" ) ) ;; @@ -220,14 +219,7 @@ _xm() fi return 0 -} +} && complete -F _xm xm -} -# 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/completions/xmllint b/completions/xmllint index 5b9c301c..c29c52d8 100644 --- a/completions/xmllint +++ b/completions/xmllint @@ -1,12 +1,9 @@ -# bash completion for xmllint(1) +# bash completion for xmllint(1) -*- shell-script -*- -have xmllint && _xmllint() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -o|--output) @@ -36,20 +33,13 @@ _xmllint() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '$( xmllint --help 2>&1 | \ - sed -ne "s/^[[:space:]]*\(--[^[:space:]:]*\).*/\1/p" ) \ - -o' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + COMPREPLY=( "${COMPREPLY[@]%:}" ) return 0 fi - _filedir '@(*ml|htm|svg|xs[dl]|rng|wsdl|jnlp)?(.gz)' + _filedir '@(*ml|htm|svg|xs[dl]|rng|wsdl|jnlp|tld)?(.gz)' } && complete -F _xmllint xmllint -# 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/completions/xmlwf b/completions/xmlwf index ba02524b..6b7ad1ba 100644 --- a/completions/xmlwf +++ b/completions/xmlwf @@ -1,12 +1,9 @@ -# bash completion for xmlwf(1) +# bash completion for xmlwf(1) -*- shell-script -*- -have xmlwf && _xmlwf() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -d) @@ -18,22 +15,18 @@ _xmlwf() ISO-8859-1' -- "$cur" ) ) return 0 ;; + -v) + return 0 + ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-c -d -e -m -n -p -r -s -t -v -w \ - -x' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) return 0 fi - _filedir '@(*ml|htm|svg|xs[dl]|rng|wsdl|jnlp)' + _filedir '@(*ml|htm|svg|xs[dl]|rng|wsdl|jnlp|tld)' } && complete -F _xmlwf xmlwf -# 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/completions/xmms b/completions/xmms index 662e2faa..7d849568 100644 --- a/completions/xmms +++ b/completions/xmms @@ -1,30 +1,27 @@ -# bash completion for xmms +# bash completion for xmms -*- shell-script -*- -have xmms && _xmms() { - local cur + local cur prev words cword split + _init_completion -s || return - COMPREPLY=() - _get_comp_words_by_ref cur + case $prev in + -h|--help|-v|--version) + return + ;; + -S|--toggle-shuffle|-R|--toggle-repeat|-A|--toggle-advance) + COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) + return + ;; + esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-h --help -r --rew -p --play \ - -u --pause -s --stop -t --play-pause -f --fwd -e \ - --enqueue -m --show-main-window -i --sm-client-id \ - -v --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) else _filedir '@(mp[23]|ogg|wav|pls|m3u|xm|mod|s[3t]m|it|mtm|ult|flac)' - fi } && complete -F _xmms xmms -# 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/completions/xmodmap b/completions/xmodmap index cde9e7e1..243563d3 100644 --- a/completions/xmodmap +++ b/completions/xmodmap @@ -1,11 +1,9 @@ -# xmodmap(1) completion +# xmodmap(1) completion -*- shell-script -*- -have xmodmap && _xmodmap() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -display|-e) @@ -23,10 +21,4 @@ _xmodmap() } && complete -F _xmodmap xmodmap -# 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/completions/xrandr b/completions/xrandr index 70de80f7..36164298 100644 --- a/completions/xrandr +++ b/completions/xrandr @@ -1,22 +1,22 @@ -# bash completion for xrandr +# bash completion for xrandr -*- shell-script -*- -have xrandr && _xrandr() { - local cur prev output modes - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return + + local output modes case $prev in - --output) + --output|--left-of|--right-of|--above|--below|--same-as) local outputs=$(xrandr|awk '/connected/ {print $1}') COMPREPLY=( $(compgen -W "$outputs" -- "$cur")) return 0 ;; --mode) - for(( i = 1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == "--output" ]]; then - output=${COMP_WORDS[i+1]} + for(( i = 1; i < cword; i++ )); do + if [[ "${words[i]}" == "--output" ]]; then + output=${words[i+1]} break fi done @@ -25,28 +25,37 @@ _xrandr() COMPREPLY=( $( compgen -W "$modes" -- "$cur")) return 0 ;; + -o|--orientation) + COMPREPLY=( $( compgen -W 'normal inverted left right 0 1 2 3' -- \ + "$cur" ) ) + return 0 + ;; + --reflect) + COMPREPLY=( $( compgen -W 'normal x y xy' -- \ + "$cur" ) ) + return 0 + ;; + --rotate) + COMPREPLY=( $( compgen -W 'normal inverted left right' -- \ + "$cur" ) ) + return 0 + ;; esac case $cur in *) COMPREPLY=( $(compgen -W '-display -help --orientation --query \ --size --rate --version -x -y --screen --verbose --dryrun \ - --prop --fb --fbmm --dpi --output --auto --mode --preferred \ - --pos --reflect --rotate --left-of --right-of --above --below \ - --same-as --set --off --crtc --newmode --rmmode --addmode \ - --delmode' -- "$cur") ) + --q1 --q12 --nograb --prop --properties --fb --fbmm --dpi \ + --output --auto --mode --preferred --pos --rate --refresh \ + --reflect --rotate --left-of --right-of --above --below \ + --same-as --set --scale --transform --off --crtc --panning \ + --gamma --brightness --primary --noprimary --newmode --rmmode \ + --addmode --delmode' -- "$cur") ) return 0 ;; esac - - return 0 } && complete -F _xrandr xrandr -# 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/completions/xrdb b/completions/xrdb index 7307f013..7a6eefe6 100644 --- a/completions/xrdb +++ b/completions/xrdb @@ -1,11 +1,9 @@ -# xrdb(1) completion +# xrdb(1) completion -*- shell-script -*- -have xrdb && _xrdb() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in -backup|-display|-help) @@ -18,9 +16,7 @@ _xrdb() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-help -display -all -global -screen -screens - -n -quiet -cpp -nocpp -symbols -query -load -override -merge - -remove -retain -edit -backup' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) return 0 fi @@ -28,10 +24,4 @@ _xrdb() } && complete -F _xrdb xrdb -# 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/completions/xsltproc b/completions/xsltproc index 2782f805..7c38591f 100644 --- a/completions/xsltproc +++ b/completions/xsltproc @@ -1,11 +1,9 @@ -# xsltproc(1) completion +# xsltproc(1) completion -*- shell-script -*- -have xsltproc && _xsltproc() { - local cur prev - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion || return case $prev in --output|-o) @@ -36,21 +34,16 @@ _xsltproc() ;; esac - [[ $COMP_CWORD -gt 2 && `_get_cword '' 2` == --?(string)param ]] && \ + [[ $cword -gt 2 && `_get_cword '' 2` == --?(string)param ]] && \ return 0 if [[ "$cur" == -* ]]; then - _longopt xsltproc + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + COMPREPLY=( "${COMPREPLY[@]%:}" ) else _filedir '@(xsl|xslt|xml)' fi } && complete -F _xsltproc xsltproc -# 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/completions/xz b/completions/xz index 89a8ac98..e2e1b709 100644 --- a/completions/xz +++ b/completions/xz @@ -1,24 +1,9 @@ -# xz(1) completion +# xz(1) completion -*- shell-script -*- -have xz && _xz() { - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--compress --decompress --test --list \ - --keep --force --stdout --suffix --files --files0 --format --check \ - -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 --fast --best --extreme --memory \ - --lzma1 --lzma2 --x86 --powerpc --ia64 --arm --armthumb --sparc \ - --delta --quiet --verbose --no-warn --help --long-help --version' \ - -- "$cur" ) ) - return 0 - fi - - local split=false - _split_longopt && split=true + local cur prev words cword split + _init_completion -s || return local xspec="*.@(xz|lzma|txz|tlz)" @@ -31,18 +16,19 @@ _xz() return 0 ;; -C|--check) - COMPREPLY=( $( compgen -W 'crc32 crc64 sha256' -- "$cur" ) ) + COMPREPLY=( $( compgen -W 'crc32 crc64 sha256 none' -- "$cur" ) ) return 0 ;; -F|--format) COMPREPLY=( $( compgen -W 'auto xz lzma raw' -- "$cur" ) ) return 0 ;; - -M|--memory|-S|--suffix|--delta|--lzma1|--lzma2) + -M|--memlimit|--memlimit-compress|--memlimit-decompress|--memory|\ + -S|--suffix|--delta|--lzma1|--lzma2) # argument required but no completions available return 0 ;; - -h|--help|-H|--long-help|-V|--version) + -h|--help|-H|--long-help|-V|--version|--info-memory) # all other arguments are noop with these return 0 ;; @@ -52,51 +38,18 @@ _xz() _expand || return 0 - local IFS=$'\n' - _compopt_o_filenames - COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ - $( compgen -d -- "$cur" ) ) -} && -complete -F _xz xz - -# xzdec(1) completion -# -have xzdec && -_xzdec() -{ - COMPREPLY=() - local cur prev - _get_comp_words_by_ref cur prev - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--memory --help --version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --long-help ) {-1..-9}' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 fi - local split=false - _split_longopt && split=true - - case $prev in - -M|--memory) - # argument required but no completions available - return 0 - ;; - -h|--help|-V|--version) - # all other arguments are noop with these - return 0 - ;; - esac - - $split && return 0 - - _filedir xz # no lzma support here as of xz 4.999.9beta + local IFS=$'\n' + compopt -o filenames + COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ + $( compgen -d -- "$cur" ) ) } && -complete -F _xzdec xzdec +complete -F _xz xz pxz -# 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/completions/xzdec b/completions/xzdec new file mode 100644 index 00000000..fc32492e --- /dev/null +++ b/completions/xzdec @@ -0,0 +1,31 @@ +# xzdec(1) completion -*- shell-script -*- + +_xzdec() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -M|--memory) + # argument required but no completions available + return 0 + ;; + -h|--help|-V|--version) + # all other arguments are noop with these + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + fi + + _filedir xz # no lzma support here as of xz 4.999.9beta +} && +complete -F _xzdec xzdec + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/yp-tools b/completions/yp-tools deleted file mode 100644 index 7252a129..00000000 --- a/completions/yp-tools +++ /dev/null @@ -1,36 +0,0 @@ -# bash completion for yp-tools - -have ypcat && -_ypmatch() -{ - local cur map cmd - - COMPREPLY=() - _get_comp_words_by_ref cur - cmd=${1##*/} - - [[ $cmd == ypcat && $COMP_CWORD -gt 1 ]] && return 0 - [[ $cmd == ypmatch && $COMP_CWORD -gt 2 ]] && return 0 - - if [[ $cmd == ypmatch && $COMP_CWORD -eq 1 && \ - ${#COMP_WORDS[@]} -eq 3 ]]; then - map=${COMP_WORDS[2]} - COMPREPLY=( $( compgen -W '$( ypcat $map | \ - cut -d':' -f 1 )' -- "$cur") ) - else - [[ $cmd == ypmatch && $COMP_CWORD -ne 2 ]] && return 0 - COMPREPLY=( $( compgen -W \ - '$( printf "%s\n" $(ypcat -x | cut -d"\"" -f 2) )' -- "$cur")) - fi - - return 0 -} && -complete -F _ypmatch ypmatch ypcat - -# 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/completions/ypmatch b/completions/ypmatch new file mode 100644 index 00000000..584b0d04 --- /dev/null +++ b/completions/ypmatch @@ -0,0 +1,28 @@ +# bash completion for yp-tools -*- shell-script -*- + +_ypmatch() +{ + local cur prev words cword + _init_completion || return + + local map cmd=${1##*/} + + [[ $cmd == ypcat && $cword -gt 1 ]] && return 0 + [[ $cmd == ypmatch && $cword -gt 2 ]] && return 0 + + if [[ $cmd == ypmatch && $cword -eq 1 && ${#words[@]} -eq 3 ]]; then + map=${words[2]} + COMPREPLY=( $( compgen -W '$( ypcat $map 2>/dev/null | \ + cut -d':' -f 1 )' -- "$cur") ) + else + [[ $cmd == ypmatch && $cword -ne 2 ]] && return 0 + COMPREPLY=( $( compgen -W \ + '$( printf "%s\n" $(ypcat -x 2>/dev/null | \ + cut -d"\"" -f 2) )' -- "$cur") ) + fi + + return 0 +} && +complete -F _ypmatch ypmatch ypcat + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/yum-arch b/completions/yum-arch index bb864af4..8c217373 100644 --- a/completions/yum-arch +++ b/completions/yum-arch @@ -1,11 +1,9 @@ -# yum-arch(8) completion +# yum-arch(8) completion -*- shell-script -*- -have yum-arch && _yum_arch() { - local cur - COMPREPLY=() - _get_comp_words_by_ref cur + local cur prev words cword + _init_completion || return if [[ "$cur" == -* ]] ; then COMPREPLY=( $( compgen -W '-d -v -vv -n -c -z -s -l -q' -- "$cur" ) ) @@ -15,10 +13,4 @@ _yum_arch() } && complete -F _yum_arch yum-arch -# 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 |