From 7cccbd2cb9795246ad56edfa8f7dbb13f2c287fe Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Mon, 29 Dec 2025 12:45:54 +0900 Subject: [PATCH 1/3] refactor: move files to separate bundled/external completions This implements the separation of bundled/external completion files suggested in Ref. [1]. To avoid unnecessary renamings of the files in the Git history, suffixing `.bash` [2] and separation of fallback completion [3] are also processed at once. All completion files with a prefix underscore were moved into `completions-fallback` (including 3rd-party fallback completions). The symbolic links `hd -> _hexdump` and `ncal -> _cal` are also created in `completions-fallback` because the target files are fallback completions (with an underscore `_` as `_hexdump` and `_cal`). The other files are moved into `completions-core`. [1] \ https://github.com/scop/bash-completion/discussions/1329#discussioncomment-12163012. [2] \ https://github.com/scop/bash-completion/discussions/1329#discussioncomment-12163019 [3] \ https://github.com/scop/bash-completion/discussions/1329#discussioncomment-12163025 --- .pre-commit-config.yaml | 26 +++++++++---------- {completions => completions-core}/.gitignore | 0 .../2to3 => completions-core/2to3.bash | 0 completions/7z => completions-core/7z.bash | 0 {completions => completions-core}/Makefile.am | 0 completions/a2x => completions-core/a2x.bash | 0 .../abook => completions-core/abook.bash | 0 .../aclocal => completions-core/aclocal.bash | 0 .../acpi => completions-core/acpi.bash | 0 .../add_members.bash | 0 .../alias => completions-core/alias.bash | 0 completions/ant => completions-core/ant.bash | 0 .../apache2ctl.bash | 0 .../appdata-validate.bash | 0 .../apt-build.bash | 0 .../apt-cache.bash | 0 .../apt-get => completions-core/apt-get.bash | 0 .../apt-mark.bash | 0 .../aptitude.bash | 0 .../arch => completions-core/arch.bash | 0 completions/arp => completions-core/arp.bash | 0 .../arping => completions-core/arping.bash | 0 .../arpspoof.bash | 0 .../asciidoc.bash | 0 .../aspell => completions-core/aspell.bash | 0 .../autoconf.bash | 0 .../automake.bash | 0 .../autoreconf.bash | 0 .../autorpm => completions-core/autorpm.bash | 0 .../autoscan.bash | 0 .../avahi-browse.bash | 0 .../avctrl => completions-core/avctrl.bash | 0 .../badblocks.bash | 0 .../bind => completions-core/bind.bash | 0 completions/bk => completions-core/bk.bash | 0 .../brctl => completions-core/brctl.bash | 0 .../btdownloadheadless.py.bash | 0 completions/bts => completions-core/bts.bash | 0 .../bzip2 => completions-core/bzip2.bash | 0 .../cancel => completions-core/cancel.bash | 0 .../cardctl => completions-core/cardctl.bash | 0 .../carton => completions-core/carton.bash | 0 .../ccache => completions-core/ccache.bash | 0 .../ccze => completions-core/ccze.bash | 0 completions/cd => completions-core/cd.bash | 0 .../cfagent => completions-core/cfagent.bash | 0 .../cfrun => completions-core/cfrun.bash | 0 .../chage => completions-core/chage.bash | 0 .../change_pw.bash | 0 .../check_db.bash | 0 .../check_perms.bash | 0 .../checksec.bash | 0 .../chflags => completions-core/chflags.bash | 0 .../chgrp => completions-core/chgrp.bash | 0 .../chkconfig.bash | 0 .../chmod => completions-core/chmod.bash | 0 .../chown => completions-core/chown.bash | 0 .../chpasswd.bash | 0 .../chromium-browser.bash | 0 .../chronyc => completions-core/chronyc.bash | 0 .../chrpath => completions-core/chrpath.bash | 0 .../cksfv => completions-core/cksfv.bash | 0 .../cleanarch.bash | 0 .../clisp => completions-core/clisp.bash | 0 .../clone_member.bash | 0 .../complete.bash | 0 .../config_list.bash | 0 .../configure.bash | 0 .../convert => completions-core/convert.bash | 0 .../cowsay => completions-core/cowsay.bash | 0 .../cpan2dist.bash | 0 .../cpio => completions-core/cpio.bash | 0 .../cppcheck.bash | 0 .../crontab => completions-core/crontab.bash | 0 .../cryptsetup.bash | 0 .../curl => completions-core/curl.bash | 0 completions/cvs => completions-core/cvs.bash | 0 .../cvsps => completions-core/cvsps.bash | 0 completions/dd => completions-core/dd.bash | 0 .../declare => completions-core/declare.bash | 0 .../deja-dup.bash | 0 .../desktop-file-validate.bash | 0 .../dhclient.bash | 0 .../dict => completions-core/dict.bash | 0 .../dmypy => completions-core/dmypy.bash | 0 .../dnssec-keygen.bash | 0 .../dnsspoof.bash | 0 completions/dot => completions-core/dot.bash | 0 .../dpkg-source.bash | 0 .../dpkg => completions-core/dpkg.bash | 0 .../dselect => completions-core/dselect.bash | 0 .../dsniff => completions-core/dsniff.bash | 0 .../dumpdb => completions-core/dumpdb.bash | 0 .../dumpe2fs.bash | 0 .../e2freefrag.bash | 0 .../e2label => completions-core/e2label.bash | 0 .../ebtables.bash | 0 .../ecryptfs-migrate-home.bash | 0 completions/env => completions-core/env.bash | 0 completions/eog => completions-core/eog.bash | 0 .../ether-wake.bash | 0 .../evince => completions-core/evince.bash | 0 .../explodepkg.bash | 0 .../export => completions-core/export.bash | 0 .../faillog => completions-core/faillog.bash | 0 .../fbgs => completions-core/fbgs.bash | 0 completions/fbi => completions-core/fbi.bash | 0 completions/feh => completions-core/feh.bash | 0 .../file-roller.bash | 0 .../file => completions-core/file.bash | 0 .../filefrag.bash | 0 .../filesnarf.bash | 0 .../find => completions-core/find.bash | 0 .../find_member.bash | 0 completions/fio => completions-core/fio.bash | 0 .../firefox => completions-core/firefox.bash | 0 .../flake8 => completions-core/flake8.bash | 0 .../fprintd-delete.bash | 0 .../fprintd-enroll.bash | 0 .../free => completions-core/free.bash | 0 .../freebsd-update.bash | 0 .../freeciv-server.bash | 0 .../freeciv => completions-core/freeciv.bash | 0 .../function.bash | 0 .../fusermount.bash | 0 completions/gcc => completions-core/gcc.bash | 0 completions/gcl => completions-core/gcl.bash | 0 completions/gdb => completions-core/gdb.bash | 0 .../genaliases.bash | 0 .../gendiff => completions-core/gendiff.bash | 0 .../genisoimage.bash | 0 .../geoiplookup.bash | 0 .../getconf => completions-core/getconf.bash | 0 .../getent => completions-core/getent.bash | 0 .../gkrellm => completions-core/gkrellm.bash | 0 completions/gm => completions-core/gm.bash | 0 .../gnatmake.bash | 0 .../gnokii => completions-core/gnokii.bash | 0 .../gnome-mplayer.bash | 0 .../gnome-screenshot.bash | 0 .../gpasswd => completions-core/gpasswd.bash | 0 completions/gpg => completions-core/gpg.bash | 0 .../gpg2 => completions-core/gpg2.bash | 0 .../gpgv => completions-core/gpgv.bash | 0 .../gphoto2 => completions-core/gphoto2.bash | 0 .../gprof => completions-core/gprof.bash | 0 .../groupadd.bash | 0 .../groupdel.bash | 0 .../groupmems.bash | 0 .../groupmod.bash | 0 .../growisofs.bash | 0 .../grpck => completions-core/grpck.bash | 0 .../gssdp-discover.bash | 0 .../gzip => completions-core/gzip.bash | 0 .../hash => completions-core/hash.bash | 0 .../hcitool => completions-core/hcitool.bash | 0 .../hddtemp => completions-core/hddtemp.bash | 0 .../help => completions-core/help.bash | 0 .../hid2hci => completions-core/hid2hci.bash | 0 .../hostname.bash | 0 .../hping2 => completions-core/hping2.bash | 0 .../htop => completions-core/htop.bash | 0 .../htpasswd.bash | 0 .../hunspell.bash | 0 .../iconv => completions-core/iconv.bash | 0 completions/id => completions-core/id.bash | 0 completions/idn => completions-core/idn.bash | 0 .../ifstat => completions-core/ifstat.bash | 0 .../iftop => completions-core/iftop.bash | 0 .../ifup => completions-core/ifup.bash | 0 .../influx => completions-core/influx.bash | 0 .../info => completions-core/info.bash | 0 .../inject => completions-core/inject.bash | 0 .../inotifywait.bash | 0 .../installpkg.bash | 0 .../interdiff.bash | 0 .../invoke-rc.d.bash | 0 completions/ip => completions-core/ip.bash | 0 .../ipcalc => completions-core/ipcalc.bash | 0 .../iperf => completions-core/iperf.bash | 0 .../ipmitool.bash | 0 .../ipsec => completions-core/ipsec.bash | 0 .../iptables.bash | 0 .../ipv6calc.bash | 0 .../iscsiadm.bash | 0 .../isort => completions-core/isort.bash | 0 .../isql => completions-core/isql.bash | 0 .../iwconfig.bash | 0 .../iwlist => completions-core/iwlist.bash | 0 .../iwpriv => completions-core/iwpriv.bash | 0 .../iwspy => completions-core/iwspy.bash | 0 completions/jar => completions-core/jar.bash | 0 .../jarsigner.bash | 0 .../java => completions-core/java.bash | 0 .../javaws => completions-core/javaws.bash | 0 .../jpegoptim.bash | 0 completions/jps => completions-core/jps.bash | 0 completions/jq => completions-core/jq.bash | 0 .../jshint => completions-core/jshint.bash | 0 .../json_xs => completions-core/json_xs.bash | 0 .../jsonschema.bash | 0 completions/k3b => completions-core/k3b.bash | 0 .../kcov => completions-core/kcov.bash | 0 .../kill => completions-core/kill.bash | 0 .../killall => completions-core/killall.bash | 0 .../kldload => completions-core/kldload.bash | 0 .../kldunload.bash | 0 .../koji => completions-core/koji.bash | 0 .../ktutil => completions-core/ktutil.bash | 0 .../larch => completions-core/larch.bash | 0 .../lastlog => completions-core/lastlog.bash | 0 .../ldapsearch.bash | 0 .../ldapvi => completions-core/ldapvi.bash | 0 .../lftp => completions-core/lftp.bash | 0 .../lftpget => completions-core/lftpget.bash | 0 .../lilo => completions-core/lilo.bash | 0 .../links => completions-core/links.bash | 0 .../lintian => completions-core/lintian.bash | 0 .../lisp => completions-core/lisp.bash | 0 .../list_admins.bash | 0 .../list_lists.bash | 0 .../list_members.bash | 0 .../list_owners.bash | 0 .../locale-gen.bash | 0 completions/lpq => completions-core/lpq.bash | 0 completions/lpr => completions-core/lpr.bash | 0 .../lrzip => completions-core/lrzip.bash | 0 .../lsof => completions-core/lsof.bash | 0 .../lspci => completions-core/lspci.bash | 0 .../lsscsi => completions-core/lsscsi.bash | 0 .../lsusb => completions-core/lsusb.bash | 0 completions/lua => completions-core/lua.bash | 0 .../luac => completions-core/luac.bash | 0 .../luseradd.bash | 0 .../luserdel.bash | 0 completions/lvm => completions-core/lvm.bash | 0 completions/lz4 => completions-core/lz4.bash | 0 .../lzip => completions-core/lzip.bash | 0 .../lzma => completions-core/lzma.bash | 0 .../lzop => completions-core/lzop.bash | 0 .../macof => completions-core/macof.bash | 0 .../mailmanctl.bash | 0 .../make => completions-core/make.bash | 0 .../makepkg => completions-core/makepkg.bash | 0 completions/man => completions-core/man.bash | 0 completions/mc => completions-core/mc.bash | 0 .../mcrypt => completions-core/mcrypt.bash | 0 .../mdadm => completions-core/mdadm.bash | 0 .../mdtool => completions-core/mdtool.bash | 0 .../medusa => completions-core/medusa.bash | 0 .../mfiutil => completions-core/mfiutil.bash | 0 .../mii-diag.bash | 0 .../mii-tool.bash | 0 .../minicom => completions-core/minicom.bash | 0 .../mkinitrd.bash | 0 .../mktemp => completions-core/mktemp.bash | 0 .../mmsitepass.bash | 0 .../monodevelop.bash | 0 .../mplayer => completions-core/mplayer.bash | 0 completions/mr => completions-core/mr.bash | 0 .../msynctool.bash | 0 completions/mtx => completions-core/mtx.bash | 0 .../munin-node-configure.bash | 0 .../munin-run.bash | 0 .../munin-update.bash | 0 .../munindoc.bash | 0 .../mussh => completions-core/mussh.bash | 0 .../mutt => completions-core/mutt.bash | 0 .../mypy => completions-core/mypy.bash | 0 .../mysql => completions-core/mysql.bash | 0 .../mysqladmin.bash | 0 completions/nc => completions-core/nc.bash | 0 .../ncftp => completions-core/ncftp.bash | 0 .../nethogs => completions-core/nethogs.bash | 0 .../newlist => completions-core/newlist.bash | 0 .../newusers.bash | 0 .../ngrep => completions-core/ngrep.bash | 0 .../nload => completions-core/nload.bash | 0 .../nmap => completions-core/nmap.bash | 0 .../nproc => completions-core/nproc.bash | 0 .../nslookup.bash | 0 .../nsupdate.bash | 0 .../ntpdate => completions-core/ntpdate.bash | 0 .../oggdec => completions-core/oggdec.bash | 0 .../openssl => completions-core/openssl.bash | 0 .../opera => completions-core/opera.bash | 0 .../optipng => completions-core/optipng.bash | 0 completions/p4 => completions-core/p4.bash | 0 .../pack200 => completions-core/pack200.bash | 0 .../passwd => completions-core/passwd.bash | 0 .../patch => completions-core/patch.bash | 0 .../pdftoppm.bash | 0 .../pdftotext.bash | 0 .../perl => completions-core/perl.bash | 0 .../perlcritic.bash | 0 .../perltidy.bash | 0 .../pgrep => completions-core/pgrep.bash | 0 .../pidof => completions-core/pidof.bash | 0 .../pine => completions-core/pine.bash | 0 .../ping => completions-core/ping.bash | 0 .../pkg-config.bash | 0 .../pkg-get => completions-core/pkg-get.bash | 0 .../pkg_delete.bash | 0 .../pkgadd => completions-core/pkgadd.bash | 0 .../pkgrm => completions-core/pkgrm.bash | 0 .../pkgtool => completions-core/pkgtool.bash | 0 .../pkgutil => completions-core/pkgutil.bash | 0 .../plague-client.bash | 0 .../pm-hibernate.bash | 0 .../pm-is-supported.bash | 0 .../pm-powersave.bash | 0 .../pngfix => completions-core/pngfix.bash | 0 .../portinstall.bash | 0 .../portsnap.bash | 0 .../portupgrade.bash | 0 .../postcat => completions-core/postcat.bash | 0 .../postconf.bash | 0 .../postfix => completions-core/postfix.bash | 0 .../postmap => completions-core/postmap.bash | 0 .../postsuper.bash | 0 .../povray => completions-core/povray.bash | 0 .../prelink => completions-core/prelink.bash | 0 .../printenv.bash | 0 .../protoc => completions-core/protoc.bash | 0 completions/ps => completions-core/ps.bash | 0 .../psql => completions-core/psql.bash | 0 .../puppet => completions-core/puppet.bash | 0 completions/pv => completions-core/pv.bash | 0 .../pwck => completions-core/pwck.bash | 0 completions/pwd => completions-core/pwd.bash | 0 .../pwdx => completions-core/pwdx.bash | 0 .../pwgen => completions-core/pwgen.bash | 0 .../pycodestyle.bash | 0 .../pydoc => completions-core/pydoc.bash | 0 .../pydocstyle.bash | 0 .../pyflakes.bash | 0 .../pylint => completions-core/pylint.bash | 0 .../pytest => completions-core/pytest.bash | 0 .../python => completions-core/python.bash | 0 .../pyvenv => completions-core/pyvenv.bash | 0 .../qdbus => completions-core/qdbus.bash | 0 .../qemu => completions-core/qemu.bash | 0 .../qrunner => completions-core/qrunner.bash | 0 .../querybts.bash | 0 .../quota => completions-core/quota.bash | 0 .../radvdump.bash | 0 completions/rcs => completions-core/rcs.bash | 0 .../rdesktop.bash | 0 .../remove_members.bash | 0 .../removepkg.bash | 0 .../reportbug.bash | 0 .../resolvconf.bash | 0 completions/ri => completions-core/ri.bash | 0 .../rmlist => completions-core/rmlist.bash | 0 .../route => completions-core/route.bash | 0 .../rpcdebug.bash | 0 completions/rpm => completions-core/rpm.bash | 0 .../rpm2tgz => completions-core/rpm2tgz.bash | 0 .../rpmcheck.bash | 0 .../rrdtool => completions-core/rrdtool.bash | 0 .../rsync => completions-core/rsync.bash | 0 .../sbcl => completions-core/sbcl.bash | 0 .../sbopkg => completions-core/sbopkg.bash | 0 .../screen => completions-core/screen.bash | 0 .../scrub => completions-core/scrub.bash | 0 completions/set => completions-core/set.bash | 0 completions/sh => completions-core/sh.bash | 0 .../sha256sum.bash | 0 .../shellcheck.bash | 0 .../sitecopy.bash | 0 .../slabtop => completions-core/slabtop.bash | 0 .../slapt-get.bash | 0 .../slapt-src.bash | 0 .../smartctl.bash | 0 .../smbclient.bash | 0 .../snownews.bash | 0 .../sqlite3 => completions-core/sqlite3.bash | 0 completions/ss => completions-core/ss.bash | 0 .../ssh-add => completions-core/ssh-add.bash | 0 .../ssh-copy-id.bash | 0 .../ssh-keygen.bash | 0 .../ssh-keyscan.bash | 0 completions/ssh => completions-core/ssh.bash | 0 .../sshfs => completions-core/sshfs.bash | 0 .../sshmitm => completions-core/sshmitm.bash | 0 .../sshow => completions-core/sshow.bash | 0 .../strace => completions-core/strace.bash | 0 .../strings => completions-core/strings.bash | 0 .../sudo => completions-core/sudo.bash | 0 .../svcadm => completions-core/svcadm.bash | 0 completions/svk => completions-core/svk.bash | 0 .../sync_members.bash | 0 .../synclient.bash | 0 .../sysbench.bash | 0 .../sysctl => completions-core/sysctl.bash | 0 completions/tar => completions-core/tar.bash | 0 .../tcpdump => completions-core/tcpdump.bash | 0 .../tcpkill => completions-core/tcpkill.bash | 0 .../tcpnice => completions-core/tcpnice.bash | 0 .../timeout => completions-core/timeout.bash | 0 .../tipc => completions-core/tipc.bash | 0 .../tmux => completions-core/tmux.bash | 0 completions/tox => completions-core/tox.bash | 0 .../tracepath.bash | 0 .../tree => completions-core/tree.bash | 0 .../truncate.bash | 0 .../tshark => completions-core/tshark.bash | 0 .../tsig-keygen.bash | 0 .../tune2fs => completions-core/tune2fs.bash | 0 .../ulimit => completions-core/ulimit.bash | 0 .../unace => completions-core/unace.bash | 0 .../unpack200.bash | 0 .../unrar => completions-core/unrar.bash | 0 .../unshunt => completions-core/unshunt.bash | 0 .../update-alternatives.bash | 0 .../update-rc.d.bash | 0 .../upgradepkg.bash | 0 .../urlsnarf.bash | 0 .../uscan => completions-core/uscan.bash | 0 .../useradd => completions-core/useradd.bash | 0 .../userdel => completions-core/userdel.bash | 0 .../usermod => completions-core/usermod.bash | 0 .../valgrind.bash | 0 .../vipw => completions-core/vipw.bash | 0 .../vmstat => completions-core/vmstat.bash | 0 .../vncviewer.bash | 0 .../vpnc => completions-core/vpnc.bash | 0 .../watch => completions-core/watch.bash | 0 .../webmitm => completions-core/webmitm.bash | 0 .../wget => completions-core/wget.bash | 0 .../wine => completions-core/wine.bash | 0 .../withlist.bash | 0 .../wodim => completions-core/wodim.bash | 0 completions/wol => completions-core/wol.bash | 0 .../wsimport.bash | 0 completions/wtf => completions-core/wtf.bash | 0 .../wvdial => completions-core/wvdial.bash | 0 .../xdg-mime.bash | 0 .../xdg-settings.bash | 0 completions/xev => completions-core/xev.bash | 0 .../xfreerdp.bash | 0 .../xgamma => completions-core/xgamma.bash | 0 .../xhost => completions-core/xhost.bash | 0 .../xmllint => completions-core/xmllint.bash | 0 .../xmlwf => completions-core/xmlwf.bash | 0 .../xmms => completions-core/xmms.bash | 0 .../xmodmap => completions-core/xmodmap.bash | 0 .../xrandr => completions-core/xrandr.bash | 0 .../xrdb => completions-core/xrdb.bash | 0 .../xsltproc.bash | 0 .../xvfb-run.bash | 0 completions/xxd => completions-core/xxd.bash | 0 completions/xz => completions-core/xz.bash | 0 .../xzdec => completions-core/xzdec.bash | 0 .../ypmatch => completions-core/ypmatch.bash | 0 .../yum-arch.bash | 0 .../zopfli => completions-core/zopfli.bash | 0 .../zopflipng.bash | 0 .../_adb => completions-fallback/adb.bash | 0 .../_argc => completions-fallback/argc.bash | 0 .../bombadil.bash | 0 .../_cal => completions-fallback/cal.bash | 0 .../_cargo => completions-fallback/cargo.bash | 0 .../_chfn => completions-fallback/chfn.bash | 0 .../_chsh => completions-fallback/chsh.bash | 0 .../_coder => completions-fallback/coder.bash | 0 .../_delta => completions-fallback/delta.bash | 0 .../_dmesg => completions-fallback/dmesg.bash | 0 .../_eject => completions-fallback/eject.bash | 0 .../flamegraph.bash | 0 .../gaiacli.bash | 0 .../_gh => completions-fallback/gh.bash | 0 .../golangci-lint.bash | 0 .../_gsctl => completions-fallback/gsctl.bash | 0 .../hexdump.bash | 0 .../hwclock.bash | 0 .../insmod.bash | 0 .../ionice.bash | 0 .../_jj => completions-fallback/jj.bash | 0 .../jungle.bash | 0 .../keyring.bash | 0 .../kontena.bash | 0 .../_look => completions-fallback/look.bash | 0 .../mdbook.bash | 0 .../_mock => completions-fallback/mock.bash | 0 .../modinfo.bash | 0 .../modprobe.bash | 0 .../modules.bash | 0 .../_mount => completions-fallback/mount.bash | 0 .../mount.linux.bash | 0 .../_mtr => completions-fallback/mtr.bash | 0 .../newgrp.bash | 0 .../_nmcli => completions-fallback/nmcli.bash | 0 .../_nox => completions-fallback/nox.bash | 0 .../_nvm => completions-fallback/nvm.bash | 0 .../_pip => completions-fallback/pip.bash | 0 .../pipenv.bash | 0 .../renice.bash | 0 .../repomanage.bash | 0 .../reptyr.bash | 0 .../rfkill.bash | 0 .../_rg => completions-fallback/rg.bash | 0 .../_rmmod => completions-fallback/rmmod.bash | 0 .../rtcwake.bash | 0 .../_ruff => completions-fallback/ruff.bash | 0 .../runuser.bash | 0 .../rustup.bash | 0 .../secret-tool.bash | 0 .../_shtab => completions-fallback/shtab.bash | 0 .../slackpkg.bash | 0 .../_sops => completions-fallback/sops.bash | 0 .../_stern => completions-fallback/stern.bash | 0 .../stripe.bash | 0 .../_su => completions-fallback/su.bash | 0 .../_svn => completions-fallback/svn.bash | 0 .../svnadmin.bash | 0 .../svnlook.bash | 0 .../_task => completions-fallback/task.bash | 0 .../tokio-console.bash | 0 .../udevadm.bash | 0 .../umount.bash | 0 .../umount.linux.bash | 0 .../_uvx => completions-fallback/uvx.bash | 0 .../_vault => completions-fallback/vault.bash | 0 .../wasmer.bash | 0 .../_write => completions-fallback/write.bash | 0 .../_xm => completions-fallback/xm.bash | 0 .../_yq => completions-fallback/yq.bash | 0 .../_yum => completions-fallback/yum.bash | 0 {helpers => helpers-core}/Makefile.am | 0 .../make-extract-targets.awk | 0 {helpers => helpers-core}/perl | 0 {helpers => helpers-core}/python | 0 test/fallback/completions/adb | 1 - test/fallback/completions/adb.bash | 1 + test/fallback/completions/argc | 1 - test/fallback/completions/argc.bash | 1 + test/fallback/completions/bombadil | 1 - test/fallback/completions/bombadil.bash | 1 + test/fallback/completions/cal | 1 - test/fallback/completions/cal.bash | 1 + test/fallback/completions/cargo | 1 - test/fallback/completions/cargo.bash | 1 + test/fallback/completions/chfn | 1 - test/fallback/completions/chfn.bash | 1 + test/fallback/completions/chsh | 1 - test/fallback/completions/chsh.bash | 1 + test/fallback/completions/coder | 1 - test/fallback/completions/coder.bash | 1 + test/fallback/completions/delta | 1 - test/fallback/completions/delta.bash | 1 + test/fallback/completions/dmesg | 1 - test/fallback/completions/dmesg.bash | 1 + test/fallback/completions/eject | 1 - test/fallback/completions/eject.bash | 1 + test/fallback/completions/flamegraph | 1 - test/fallback/completions/flamegraph.bash | 1 + test/fallback/completions/gaiacli | 1 - test/fallback/completions/gaiacli.bash | 1 + test/fallback/completions/gh | 1 - test/fallback/completions/gh.bash | 1 + test/fallback/completions/golangci-lint | 1 - test/fallback/completions/golangci-lint.bash | 1 + test/fallback/completions/gsctl | 1 - test/fallback/completions/gsctl.bash | 1 + test/fallback/completions/hexdump | 1 - test/fallback/completions/hexdump.bash | 1 + test/fallback/completions/hwclock | 1 - test/fallback/completions/hwclock.bash | 1 + test/fallback/completions/insmod | 1 - test/fallback/completions/insmod.bash | 1 + test/fallback/completions/ionice | 1 - test/fallback/completions/ionice.bash | 1 + test/fallback/completions/jj | 1 - test/fallback/completions/jj.bash | 1 + test/fallback/completions/jungle | 1 - test/fallback/completions/jungle.bash | 1 + test/fallback/completions/keyring | 1 - test/fallback/completions/keyring.bash | 1 + test/fallback/completions/kontena | 1 - test/fallback/completions/kontena.bash | 1 + test/fallback/completions/look | 1 - test/fallback/completions/look.bash | 1 + test/fallback/completions/mdbook | 1 - test/fallback/completions/mdbook.bash | 1 + test/fallback/completions/mock | 1 - test/fallback/completions/mock.bash | 1 + test/fallback/completions/modinfo | 1 - test/fallback/completions/modinfo.bash | 1 + test/fallback/completions/modprobe | 1 - test/fallback/completions/modprobe.bash | 1 + test/fallback/completions/modules | 1 - test/fallback/completions/modules.bash | 1 + test/fallback/completions/mount | 1 - test/fallback/completions/mount.bash | 1 + test/fallback/completions/mount.linux | 1 - test/fallback/completions/mount.linux.bash | 1 + test/fallback/completions/mtr | 1 - test/fallback/completions/mtr.bash | 1 + test/fallback/completions/newgrp | 1 - test/fallback/completions/newgrp.bash | 1 + test/fallback/completions/nmcli | 1 - test/fallback/completions/nmcli.bash | 1 + test/fallback/completions/nox | 1 - test/fallback/completions/nox.bash | 1 + test/fallback/completions/nvm | 1 - test/fallback/completions/nvm.bash | 1 + test/fallback/completions/pip | 1 - test/fallback/completions/pip.bash | 1 + test/fallback/completions/pipenv | 1 - test/fallback/completions/pipenv.bash | 1 + test/fallback/completions/renice | 1 - test/fallback/completions/renice.bash | 1 + test/fallback/completions/repomanage | 1 - test/fallback/completions/repomanage.bash | 1 + test/fallback/completions/reptyr | 1 - test/fallback/completions/reptyr.bash | 1 + test/fallback/completions/rfkill | 1 - test/fallback/completions/rfkill.bash | 1 + test/fallback/completions/rg | 1 - test/fallback/completions/rg.bash | 1 + test/fallback/completions/rmmod | 1 - test/fallback/completions/rmmod.bash | 1 + test/fallback/completions/rtcwake | 1 - test/fallback/completions/rtcwake.bash | 1 + test/fallback/completions/ruff | 1 - test/fallback/completions/ruff.bash | 1 + test/fallback/completions/runuser | 1 - test/fallback/completions/runuser.bash | 1 + test/fallback/completions/rustup | 1 - test/fallback/completions/rustup.bash | 1 + test/fallback/completions/secret-tool | 1 - test/fallback/completions/secret-tool.bash | 1 + test/fallback/completions/shtab | 1 - test/fallback/completions/shtab.bash | 1 + test/fallback/completions/slackpkg | 1 - test/fallback/completions/slackpkg.bash | 1 + test/fallback/completions/sops | 1 - test/fallback/completions/sops.bash | 1 + test/fallback/completions/stern | 1 - test/fallback/completions/stern.bash | 1 + test/fallback/completions/stripe | 1 - test/fallback/completions/stripe.bash | 1 + test/fallback/completions/su | 1 - test/fallback/completions/su.bash | 1 + test/fallback/completions/svn | 1 - test/fallback/completions/svn.bash | 1 + test/fallback/completions/svnadmin | 1 - test/fallback/completions/svnadmin.bash | 1 + test/fallback/completions/svnlook | 1 - test/fallback/completions/svnlook.bash | 1 + test/fallback/completions/task | 1 - test/fallback/completions/task.bash | 1 + test/fallback/completions/tokio-console | 1 - test/fallback/completions/tokio-console.bash | 1 + test/fallback/completions/udevadm | 1 - test/fallback/completions/udevadm.bash | 1 + test/fallback/completions/umount | 1 - test/fallback/completions/umount.bash | 1 + test/fallback/completions/umount.linux | 1 - test/fallback/completions/umount.linux.bash | 1 + test/fallback/completions/uvx | 1 - test/fallback/completions/uvx.bash | 1 + test/fallback/completions/vault | 1 - test/fallback/completions/vault.bash | 1 + test/fallback/completions/wasmer | 1 - test/fallback/completions/wasmer.bash | 1 + test/fallback/completions/write | 1 - test/fallback/completions/write.bash | 1 + test/fallback/completions/xm | 1 - test/fallback/completions/xm.bash | 1 + test/fallback/completions/yq | 1 - test/fallback/completions/yq.bash | 1 + test/fallback/completions/yum | 1 - test/fallback/completions/yum.bash | 1 + 675 files changed, 84 insertions(+), 84 deletions(-) rename {completions => completions-core}/.gitignore (100%) rename completions/2to3 => completions-core/2to3.bash (100%) rename completions/7z => completions-core/7z.bash (100%) rename {completions => completions-core}/Makefile.am (100%) rename completions/a2x => completions-core/a2x.bash (100%) rename completions/abook => completions-core/abook.bash (100%) rename completions/aclocal => completions-core/aclocal.bash (100%) rename completions/acpi => completions-core/acpi.bash (100%) rename completions/add_members => completions-core/add_members.bash (100%) rename completions/alias => completions-core/alias.bash (100%) rename completions/ant => completions-core/ant.bash (100%) rename completions/apache2ctl => completions-core/apache2ctl.bash (100%) rename completions/appdata-validate => completions-core/appdata-validate.bash (100%) rename completions/apt-build => completions-core/apt-build.bash (100%) rename completions/apt-cache => completions-core/apt-cache.bash (100%) rename completions/apt-get => completions-core/apt-get.bash (100%) rename completions/apt-mark => completions-core/apt-mark.bash (100%) rename completions/aptitude => completions-core/aptitude.bash (100%) rename completions/arch => completions-core/arch.bash (100%) rename completions/arp => completions-core/arp.bash (100%) rename completions/arping => completions-core/arping.bash (100%) rename completions/arpspoof => completions-core/arpspoof.bash (100%) rename completions/asciidoc => completions-core/asciidoc.bash (100%) rename completions/aspell => completions-core/aspell.bash (100%) rename completions/autoconf => completions-core/autoconf.bash (100%) rename completions/automake => completions-core/automake.bash (100%) rename completions/autoreconf => completions-core/autoreconf.bash (100%) rename completions/autorpm => completions-core/autorpm.bash (100%) rename completions/autoscan => completions-core/autoscan.bash (100%) rename completions/avahi-browse => completions-core/avahi-browse.bash (100%) rename completions/avctrl => completions-core/avctrl.bash (100%) rename completions/badblocks => completions-core/badblocks.bash (100%) rename completions/bind => completions-core/bind.bash (100%) rename completions/bk => completions-core/bk.bash (100%) rename completions/brctl => completions-core/brctl.bash (100%) rename completions/btdownloadheadless.py => completions-core/btdownloadheadless.py.bash (100%) rename completions/bts => completions-core/bts.bash (100%) rename completions/bzip2 => completions-core/bzip2.bash (100%) rename completions/cancel => completions-core/cancel.bash (100%) rename completions/cardctl => completions-core/cardctl.bash (100%) rename completions/carton => completions-core/carton.bash (100%) rename completions/ccache => completions-core/ccache.bash (100%) rename completions/ccze => completions-core/ccze.bash (100%) rename completions/cd => completions-core/cd.bash (100%) rename completions/cfagent => completions-core/cfagent.bash (100%) rename completions/cfrun => completions-core/cfrun.bash (100%) rename completions/chage => completions-core/chage.bash (100%) rename completions/change_pw => completions-core/change_pw.bash (100%) rename completions/check_db => completions-core/check_db.bash (100%) rename completions/check_perms => completions-core/check_perms.bash (100%) rename completions/checksec => completions-core/checksec.bash (100%) rename completions/chflags => completions-core/chflags.bash (100%) rename completions/chgrp => completions-core/chgrp.bash (100%) rename completions/chkconfig => completions-core/chkconfig.bash (100%) rename completions/chmod => completions-core/chmod.bash (100%) rename completions/chown => completions-core/chown.bash (100%) rename completions/chpasswd => completions-core/chpasswd.bash (100%) rename completions/chromium-browser => completions-core/chromium-browser.bash (100%) rename completions/chronyc => completions-core/chronyc.bash (100%) rename completions/chrpath => completions-core/chrpath.bash (100%) rename completions/cksfv => completions-core/cksfv.bash (100%) rename completions/cleanarch => completions-core/cleanarch.bash (100%) rename completions/clisp => completions-core/clisp.bash (100%) rename completions/clone_member => completions-core/clone_member.bash (100%) rename completions/complete => completions-core/complete.bash (100%) rename completions/config_list => completions-core/config_list.bash (100%) rename completions/configure => completions-core/configure.bash (100%) rename completions/convert => completions-core/convert.bash (100%) rename completions/cowsay => completions-core/cowsay.bash (100%) rename completions/cpan2dist => completions-core/cpan2dist.bash (100%) rename completions/cpio => completions-core/cpio.bash (100%) rename completions/cppcheck => completions-core/cppcheck.bash (100%) rename completions/crontab => completions-core/crontab.bash (100%) rename completions/cryptsetup => completions-core/cryptsetup.bash (100%) rename completions/curl => completions-core/curl.bash (100%) rename completions/cvs => completions-core/cvs.bash (100%) rename completions/cvsps => completions-core/cvsps.bash (100%) rename completions/dd => completions-core/dd.bash (100%) rename completions/declare => completions-core/declare.bash (100%) rename completions/deja-dup => completions-core/deja-dup.bash (100%) rename completions/desktop-file-validate => completions-core/desktop-file-validate.bash (100%) rename completions/dhclient => completions-core/dhclient.bash (100%) rename completions/dict => completions-core/dict.bash (100%) rename completions/dmypy => completions-core/dmypy.bash (100%) rename completions/dnssec-keygen => completions-core/dnssec-keygen.bash (100%) rename completions/dnsspoof => completions-core/dnsspoof.bash (100%) rename completions/dot => completions-core/dot.bash (100%) rename completions/dpkg-source => completions-core/dpkg-source.bash (100%) rename completions/dpkg => completions-core/dpkg.bash (100%) rename completions/dselect => completions-core/dselect.bash (100%) rename completions/dsniff => completions-core/dsniff.bash (100%) rename completions/dumpdb => completions-core/dumpdb.bash (100%) rename completions/dumpe2fs => completions-core/dumpe2fs.bash (100%) rename completions/e2freefrag => completions-core/e2freefrag.bash (100%) rename completions/e2label => completions-core/e2label.bash (100%) rename completions/ebtables => completions-core/ebtables.bash (100%) rename completions/ecryptfs-migrate-home => completions-core/ecryptfs-migrate-home.bash (100%) rename completions/env => completions-core/env.bash (100%) rename completions/eog => completions-core/eog.bash (100%) rename completions/ether-wake => completions-core/ether-wake.bash (100%) rename completions/evince => completions-core/evince.bash (100%) rename completions/explodepkg => completions-core/explodepkg.bash (100%) rename completions/export => completions-core/export.bash (100%) rename completions/faillog => completions-core/faillog.bash (100%) rename completions/fbgs => completions-core/fbgs.bash (100%) rename completions/fbi => completions-core/fbi.bash (100%) rename completions/feh => completions-core/feh.bash (100%) rename completions/file-roller => completions-core/file-roller.bash (100%) rename completions/file => completions-core/file.bash (100%) rename completions/filefrag => completions-core/filefrag.bash (100%) rename completions/filesnarf => completions-core/filesnarf.bash (100%) rename completions/find => completions-core/find.bash (100%) rename completions/find_member => completions-core/find_member.bash (100%) rename completions/fio => completions-core/fio.bash (100%) rename completions/firefox => completions-core/firefox.bash (100%) rename completions/flake8 => completions-core/flake8.bash (100%) rename completions/fprintd-delete => completions-core/fprintd-delete.bash (100%) rename completions/fprintd-enroll => completions-core/fprintd-enroll.bash (100%) rename completions/free => completions-core/free.bash (100%) rename completions/freebsd-update => completions-core/freebsd-update.bash (100%) rename completions/freeciv-server => completions-core/freeciv-server.bash (100%) rename completions/freeciv => completions-core/freeciv.bash (100%) rename completions/function => completions-core/function.bash (100%) rename completions/fusermount => completions-core/fusermount.bash (100%) rename completions/gcc => completions-core/gcc.bash (100%) rename completions/gcl => completions-core/gcl.bash (100%) rename completions/gdb => completions-core/gdb.bash (100%) rename completions/genaliases => completions-core/genaliases.bash (100%) rename completions/gendiff => completions-core/gendiff.bash (100%) rename completions/genisoimage => completions-core/genisoimage.bash (100%) rename completions/geoiplookup => completions-core/geoiplookup.bash (100%) rename completions/getconf => completions-core/getconf.bash (100%) rename completions/getent => completions-core/getent.bash (100%) rename completions/gkrellm => completions-core/gkrellm.bash (100%) rename completions/gm => completions-core/gm.bash (100%) rename completions/gnatmake => completions-core/gnatmake.bash (100%) rename completions/gnokii => completions-core/gnokii.bash (100%) rename completions/gnome-mplayer => completions-core/gnome-mplayer.bash (100%) rename completions/gnome-screenshot => completions-core/gnome-screenshot.bash (100%) rename completions/gpasswd => completions-core/gpasswd.bash (100%) rename completions/gpg => completions-core/gpg.bash (100%) rename completions/gpg2 => completions-core/gpg2.bash (100%) rename completions/gpgv => completions-core/gpgv.bash (100%) rename completions/gphoto2 => completions-core/gphoto2.bash (100%) rename completions/gprof => completions-core/gprof.bash (100%) rename completions/groupadd => completions-core/groupadd.bash (100%) rename completions/groupdel => completions-core/groupdel.bash (100%) rename completions/groupmems => completions-core/groupmems.bash (100%) rename completions/groupmod => completions-core/groupmod.bash (100%) rename completions/growisofs => completions-core/growisofs.bash (100%) rename completions/grpck => completions-core/grpck.bash (100%) rename completions/gssdp-discover => completions-core/gssdp-discover.bash (100%) rename completions/gzip => completions-core/gzip.bash (100%) rename completions/hash => completions-core/hash.bash (100%) rename completions/hcitool => completions-core/hcitool.bash (100%) rename completions/hddtemp => completions-core/hddtemp.bash (100%) rename completions/help => completions-core/help.bash (100%) rename completions/hid2hci => completions-core/hid2hci.bash (100%) rename completions/hostname => completions-core/hostname.bash (100%) rename completions/hping2 => completions-core/hping2.bash (100%) rename completions/htop => completions-core/htop.bash (100%) rename completions/htpasswd => completions-core/htpasswd.bash (100%) rename completions/hunspell => completions-core/hunspell.bash (100%) rename completions/iconv => completions-core/iconv.bash (100%) rename completions/id => completions-core/id.bash (100%) rename completions/idn => completions-core/idn.bash (100%) rename completions/ifstat => completions-core/ifstat.bash (100%) rename completions/iftop => completions-core/iftop.bash (100%) rename completions/ifup => completions-core/ifup.bash (100%) rename completions/influx => completions-core/influx.bash (100%) rename completions/info => completions-core/info.bash (100%) rename completions/inject => completions-core/inject.bash (100%) rename completions/inotifywait => completions-core/inotifywait.bash (100%) rename completions/installpkg => completions-core/installpkg.bash (100%) rename completions/interdiff => completions-core/interdiff.bash (100%) rename completions/invoke-rc.d => completions-core/invoke-rc.d.bash (100%) rename completions/ip => completions-core/ip.bash (100%) rename completions/ipcalc => completions-core/ipcalc.bash (100%) rename completions/iperf => completions-core/iperf.bash (100%) rename completions/ipmitool => completions-core/ipmitool.bash (100%) rename completions/ipsec => completions-core/ipsec.bash (100%) rename completions/iptables => completions-core/iptables.bash (100%) rename completions/ipv6calc => completions-core/ipv6calc.bash (100%) rename completions/iscsiadm => completions-core/iscsiadm.bash (100%) rename completions/isort => completions-core/isort.bash (100%) rename completions/isql => completions-core/isql.bash (100%) rename completions/iwconfig => completions-core/iwconfig.bash (100%) rename completions/iwlist => completions-core/iwlist.bash (100%) rename completions/iwpriv => completions-core/iwpriv.bash (100%) rename completions/iwspy => completions-core/iwspy.bash (100%) rename completions/jar => completions-core/jar.bash (100%) rename completions/jarsigner => completions-core/jarsigner.bash (100%) rename completions/java => completions-core/java.bash (100%) rename completions/javaws => completions-core/javaws.bash (100%) rename completions/jpegoptim => completions-core/jpegoptim.bash (100%) rename completions/jps => completions-core/jps.bash (100%) rename completions/jq => completions-core/jq.bash (100%) rename completions/jshint => completions-core/jshint.bash (100%) rename completions/json_xs => completions-core/json_xs.bash (100%) rename completions/jsonschema => completions-core/jsonschema.bash (100%) rename completions/k3b => completions-core/k3b.bash (100%) rename completions/kcov => completions-core/kcov.bash (100%) rename completions/kill => completions-core/kill.bash (100%) rename completions/killall => completions-core/killall.bash (100%) rename completions/kldload => completions-core/kldload.bash (100%) rename completions/kldunload => completions-core/kldunload.bash (100%) rename completions/koji => completions-core/koji.bash (100%) rename completions/ktutil => completions-core/ktutil.bash (100%) rename completions/larch => completions-core/larch.bash (100%) rename completions/lastlog => completions-core/lastlog.bash (100%) rename completions/ldapsearch => completions-core/ldapsearch.bash (100%) rename completions/ldapvi => completions-core/ldapvi.bash (100%) rename completions/lftp => completions-core/lftp.bash (100%) rename completions/lftpget => completions-core/lftpget.bash (100%) rename completions/lilo => completions-core/lilo.bash (100%) rename completions/links => completions-core/links.bash (100%) rename completions/lintian => completions-core/lintian.bash (100%) rename completions/lisp => completions-core/lisp.bash (100%) rename completions/list_admins => completions-core/list_admins.bash (100%) rename completions/list_lists => completions-core/list_lists.bash (100%) rename completions/list_members => completions-core/list_members.bash (100%) rename completions/list_owners => completions-core/list_owners.bash (100%) rename completions/locale-gen => completions-core/locale-gen.bash (100%) rename completions/lpq => completions-core/lpq.bash (100%) rename completions/lpr => completions-core/lpr.bash (100%) rename completions/lrzip => completions-core/lrzip.bash (100%) rename completions/lsof => completions-core/lsof.bash (100%) rename completions/lspci => completions-core/lspci.bash (100%) rename completions/lsscsi => completions-core/lsscsi.bash (100%) rename completions/lsusb => completions-core/lsusb.bash (100%) rename completions/lua => completions-core/lua.bash (100%) rename completions/luac => completions-core/luac.bash (100%) rename completions/luseradd => completions-core/luseradd.bash (100%) rename completions/luserdel => completions-core/luserdel.bash (100%) rename completions/lvm => completions-core/lvm.bash (100%) rename completions/lz4 => completions-core/lz4.bash (100%) rename completions/lzip => completions-core/lzip.bash (100%) rename completions/lzma => completions-core/lzma.bash (100%) rename completions/lzop => completions-core/lzop.bash (100%) rename completions/macof => completions-core/macof.bash (100%) rename completions/mailmanctl => completions-core/mailmanctl.bash (100%) rename completions/make => completions-core/make.bash (100%) rename completions/makepkg => completions-core/makepkg.bash (100%) rename completions/man => completions-core/man.bash (100%) rename completions/mc => completions-core/mc.bash (100%) rename completions/mcrypt => completions-core/mcrypt.bash (100%) rename completions/mdadm => completions-core/mdadm.bash (100%) rename completions/mdtool => completions-core/mdtool.bash (100%) rename completions/medusa => completions-core/medusa.bash (100%) rename completions/mfiutil => completions-core/mfiutil.bash (100%) rename completions/mii-diag => completions-core/mii-diag.bash (100%) rename completions/mii-tool => completions-core/mii-tool.bash (100%) rename completions/minicom => completions-core/minicom.bash (100%) rename completions/mkinitrd => completions-core/mkinitrd.bash (100%) rename completions/mktemp => completions-core/mktemp.bash (100%) rename completions/mmsitepass => completions-core/mmsitepass.bash (100%) rename completions/monodevelop => completions-core/monodevelop.bash (100%) rename completions/mplayer => completions-core/mplayer.bash (100%) rename completions/mr => completions-core/mr.bash (100%) rename completions/msynctool => completions-core/msynctool.bash (100%) rename completions/mtx => completions-core/mtx.bash (100%) rename completions/munin-node-configure => completions-core/munin-node-configure.bash (100%) rename completions/munin-run => completions-core/munin-run.bash (100%) rename completions/munin-update => completions-core/munin-update.bash (100%) rename completions/munindoc => completions-core/munindoc.bash (100%) rename completions/mussh => completions-core/mussh.bash (100%) rename completions/mutt => completions-core/mutt.bash (100%) rename completions/mypy => completions-core/mypy.bash (100%) rename completions/mysql => completions-core/mysql.bash (100%) rename completions/mysqladmin => completions-core/mysqladmin.bash (100%) rename completions/nc => completions-core/nc.bash (100%) rename completions/ncftp => completions-core/ncftp.bash (100%) rename completions/nethogs => completions-core/nethogs.bash (100%) rename completions/newlist => completions-core/newlist.bash (100%) rename completions/newusers => completions-core/newusers.bash (100%) rename completions/ngrep => completions-core/ngrep.bash (100%) rename completions/nload => completions-core/nload.bash (100%) rename completions/nmap => completions-core/nmap.bash (100%) rename completions/nproc => completions-core/nproc.bash (100%) rename completions/nslookup => completions-core/nslookup.bash (100%) rename completions/nsupdate => completions-core/nsupdate.bash (100%) rename completions/ntpdate => completions-core/ntpdate.bash (100%) rename completions/oggdec => completions-core/oggdec.bash (100%) rename completions/openssl => completions-core/openssl.bash (100%) rename completions/opera => completions-core/opera.bash (100%) rename completions/optipng => completions-core/optipng.bash (100%) rename completions/p4 => completions-core/p4.bash (100%) rename completions/pack200 => completions-core/pack200.bash (100%) rename completions/passwd => completions-core/passwd.bash (100%) rename completions/patch => completions-core/patch.bash (100%) rename completions/pdftoppm => completions-core/pdftoppm.bash (100%) rename completions/pdftotext => completions-core/pdftotext.bash (100%) rename completions/perl => completions-core/perl.bash (100%) rename completions/perlcritic => completions-core/perlcritic.bash (100%) rename completions/perltidy => completions-core/perltidy.bash (100%) rename completions/pgrep => completions-core/pgrep.bash (100%) rename completions/pidof => completions-core/pidof.bash (100%) rename completions/pine => completions-core/pine.bash (100%) rename completions/ping => completions-core/ping.bash (100%) rename completions/pkg-config => completions-core/pkg-config.bash (100%) rename completions/pkg-get => completions-core/pkg-get.bash (100%) rename completions/pkg_delete => completions-core/pkg_delete.bash (100%) rename completions/pkgadd => completions-core/pkgadd.bash (100%) rename completions/pkgrm => completions-core/pkgrm.bash (100%) rename completions/pkgtool => completions-core/pkgtool.bash (100%) rename completions/pkgutil => completions-core/pkgutil.bash (100%) rename completions/plague-client => completions-core/plague-client.bash (100%) rename completions/pm-hibernate => completions-core/pm-hibernate.bash (100%) rename completions/pm-is-supported => completions-core/pm-is-supported.bash (100%) rename completions/pm-powersave => completions-core/pm-powersave.bash (100%) rename completions/pngfix => completions-core/pngfix.bash (100%) rename completions/portinstall => completions-core/portinstall.bash (100%) rename completions/portsnap => completions-core/portsnap.bash (100%) rename completions/portupgrade => completions-core/portupgrade.bash (100%) rename completions/postcat => completions-core/postcat.bash (100%) rename completions/postconf => completions-core/postconf.bash (100%) rename completions/postfix => completions-core/postfix.bash (100%) rename completions/postmap => completions-core/postmap.bash (100%) rename completions/postsuper => completions-core/postsuper.bash (100%) rename completions/povray => completions-core/povray.bash (100%) rename completions/prelink => completions-core/prelink.bash (100%) rename completions/printenv => completions-core/printenv.bash (100%) rename completions/protoc => completions-core/protoc.bash (100%) rename completions/ps => completions-core/ps.bash (100%) rename completions/psql => completions-core/psql.bash (100%) rename completions/puppet => completions-core/puppet.bash (100%) rename completions/pv => completions-core/pv.bash (100%) rename completions/pwck => completions-core/pwck.bash (100%) rename completions/pwd => completions-core/pwd.bash (100%) rename completions/pwdx => completions-core/pwdx.bash (100%) rename completions/pwgen => completions-core/pwgen.bash (100%) rename completions/pycodestyle => completions-core/pycodestyle.bash (100%) rename completions/pydoc => completions-core/pydoc.bash (100%) rename completions/pydocstyle => completions-core/pydocstyle.bash (100%) rename completions/pyflakes => completions-core/pyflakes.bash (100%) rename completions/pylint => completions-core/pylint.bash (100%) rename completions/pytest => completions-core/pytest.bash (100%) rename completions/python => completions-core/python.bash (100%) rename completions/pyvenv => completions-core/pyvenv.bash (100%) rename completions/qdbus => completions-core/qdbus.bash (100%) rename completions/qemu => completions-core/qemu.bash (100%) rename completions/qrunner => completions-core/qrunner.bash (100%) rename completions/querybts => completions-core/querybts.bash (100%) rename completions/quota => completions-core/quota.bash (100%) rename completions/radvdump => completions-core/radvdump.bash (100%) rename completions/rcs => completions-core/rcs.bash (100%) rename completions/rdesktop => completions-core/rdesktop.bash (100%) rename completions/remove_members => completions-core/remove_members.bash (100%) rename completions/removepkg => completions-core/removepkg.bash (100%) rename completions/reportbug => completions-core/reportbug.bash (100%) rename completions/resolvconf => completions-core/resolvconf.bash (100%) rename completions/ri => completions-core/ri.bash (100%) rename completions/rmlist => completions-core/rmlist.bash (100%) rename completions/route => completions-core/route.bash (100%) rename completions/rpcdebug => completions-core/rpcdebug.bash (100%) rename completions/rpm => completions-core/rpm.bash (100%) rename completions/rpm2tgz => completions-core/rpm2tgz.bash (100%) rename completions/rpmcheck => completions-core/rpmcheck.bash (100%) rename completions/rrdtool => completions-core/rrdtool.bash (100%) rename completions/rsync => completions-core/rsync.bash (100%) rename completions/sbcl => completions-core/sbcl.bash (100%) rename completions/sbopkg => completions-core/sbopkg.bash (100%) rename completions/screen => completions-core/screen.bash (100%) rename completions/scrub => completions-core/scrub.bash (100%) rename completions/set => completions-core/set.bash (100%) rename completions/sh => completions-core/sh.bash (100%) rename completions/sha256sum => completions-core/sha256sum.bash (100%) rename completions/shellcheck => completions-core/shellcheck.bash (100%) rename completions/sitecopy => completions-core/sitecopy.bash (100%) rename completions/slabtop => completions-core/slabtop.bash (100%) rename completions/slapt-get => completions-core/slapt-get.bash (100%) rename completions/slapt-src => completions-core/slapt-src.bash (100%) rename completions/smartctl => completions-core/smartctl.bash (100%) rename completions/smbclient => completions-core/smbclient.bash (100%) rename completions/snownews => completions-core/snownews.bash (100%) rename completions/sqlite3 => completions-core/sqlite3.bash (100%) rename completions/ss => completions-core/ss.bash (100%) rename completions/ssh-add => completions-core/ssh-add.bash (100%) rename completions/ssh-copy-id => completions-core/ssh-copy-id.bash (100%) rename completions/ssh-keygen => completions-core/ssh-keygen.bash (100%) rename completions/ssh-keyscan => completions-core/ssh-keyscan.bash (100%) rename completions/ssh => completions-core/ssh.bash (100%) rename completions/sshfs => completions-core/sshfs.bash (100%) rename completions/sshmitm => completions-core/sshmitm.bash (100%) rename completions/sshow => completions-core/sshow.bash (100%) rename completions/strace => completions-core/strace.bash (100%) rename completions/strings => completions-core/strings.bash (100%) rename completions/sudo => completions-core/sudo.bash (100%) rename completions/svcadm => completions-core/svcadm.bash (100%) rename completions/svk => completions-core/svk.bash (100%) rename completions/sync_members => completions-core/sync_members.bash (100%) rename completions/synclient => completions-core/synclient.bash (100%) rename completions/sysbench => completions-core/sysbench.bash (100%) rename completions/sysctl => completions-core/sysctl.bash (100%) rename completions/tar => completions-core/tar.bash (100%) rename completions/tcpdump => completions-core/tcpdump.bash (100%) rename completions/tcpkill => completions-core/tcpkill.bash (100%) rename completions/tcpnice => completions-core/tcpnice.bash (100%) rename completions/timeout => completions-core/timeout.bash (100%) rename completions/tipc => completions-core/tipc.bash (100%) rename completions/tmux => completions-core/tmux.bash (100%) rename completions/tox => completions-core/tox.bash (100%) rename completions/tracepath => completions-core/tracepath.bash (100%) rename completions/tree => completions-core/tree.bash (100%) rename completions/truncate => completions-core/truncate.bash (100%) rename completions/tshark => completions-core/tshark.bash (100%) rename completions/tsig-keygen => completions-core/tsig-keygen.bash (100%) rename completions/tune2fs => completions-core/tune2fs.bash (100%) rename completions/ulimit => completions-core/ulimit.bash (100%) rename completions/unace => completions-core/unace.bash (100%) rename completions/unpack200 => completions-core/unpack200.bash (100%) rename completions/unrar => completions-core/unrar.bash (100%) rename completions/unshunt => completions-core/unshunt.bash (100%) rename completions/update-alternatives => completions-core/update-alternatives.bash (100%) rename completions/update-rc.d => completions-core/update-rc.d.bash (100%) rename completions/upgradepkg => completions-core/upgradepkg.bash (100%) rename completions/urlsnarf => completions-core/urlsnarf.bash (100%) rename completions/uscan => completions-core/uscan.bash (100%) rename completions/useradd => completions-core/useradd.bash (100%) rename completions/userdel => completions-core/userdel.bash (100%) rename completions/usermod => completions-core/usermod.bash (100%) rename completions/valgrind => completions-core/valgrind.bash (100%) rename completions/vipw => completions-core/vipw.bash (100%) rename completions/vmstat => completions-core/vmstat.bash (100%) rename completions/vncviewer => completions-core/vncviewer.bash (100%) rename completions/vpnc => completions-core/vpnc.bash (100%) rename completions/watch => completions-core/watch.bash (100%) rename completions/webmitm => completions-core/webmitm.bash (100%) rename completions/wget => completions-core/wget.bash (100%) rename completions/wine => completions-core/wine.bash (100%) rename completions/withlist => completions-core/withlist.bash (100%) rename completions/wodim => completions-core/wodim.bash (100%) rename completions/wol => completions-core/wol.bash (100%) rename completions/wsimport => completions-core/wsimport.bash (100%) rename completions/wtf => completions-core/wtf.bash (100%) rename completions/wvdial => completions-core/wvdial.bash (100%) rename completions/xdg-mime => completions-core/xdg-mime.bash (100%) rename completions/xdg-settings => completions-core/xdg-settings.bash (100%) rename completions/xev => completions-core/xev.bash (100%) rename completions/xfreerdp => completions-core/xfreerdp.bash (100%) rename completions/xgamma => completions-core/xgamma.bash (100%) rename completions/xhost => completions-core/xhost.bash (100%) rename completions/xmllint => completions-core/xmllint.bash (100%) rename completions/xmlwf => completions-core/xmlwf.bash (100%) rename completions/xmms => completions-core/xmms.bash (100%) rename completions/xmodmap => completions-core/xmodmap.bash (100%) rename completions/xrandr => completions-core/xrandr.bash (100%) rename completions/xrdb => completions-core/xrdb.bash (100%) rename completions/xsltproc => completions-core/xsltproc.bash (100%) rename completions/xvfb-run => completions-core/xvfb-run.bash (100%) rename completions/xxd => completions-core/xxd.bash (100%) rename completions/xz => completions-core/xz.bash (100%) rename completions/xzdec => completions-core/xzdec.bash (100%) rename completions/ypmatch => completions-core/ypmatch.bash (100%) rename completions/yum-arch => completions-core/yum-arch.bash (100%) rename completions/zopfli => completions-core/zopfli.bash (100%) rename completions/zopflipng => completions-core/zopflipng.bash (100%) rename completions/_adb => completions-fallback/adb.bash (100%) rename completions/_argc => completions-fallback/argc.bash (100%) rename completions/_bombadil => completions-fallback/bombadil.bash (100%) rename completions/_cal => completions-fallback/cal.bash (100%) rename completions/_cargo => completions-fallback/cargo.bash (100%) rename completions/_chfn => completions-fallback/chfn.bash (100%) rename completions/_chsh => completions-fallback/chsh.bash (100%) rename completions/_coder => completions-fallback/coder.bash (100%) rename completions/_delta => completions-fallback/delta.bash (100%) rename completions/_dmesg => completions-fallback/dmesg.bash (100%) rename completions/_eject => completions-fallback/eject.bash (100%) rename completions/_flamegraph => completions-fallback/flamegraph.bash (100%) rename completions/_gaiacli => completions-fallback/gaiacli.bash (100%) rename completions/_gh => completions-fallback/gh.bash (100%) rename completions/_golangci-lint => completions-fallback/golangci-lint.bash (100%) rename completions/_gsctl => completions-fallback/gsctl.bash (100%) rename completions/_hexdump => completions-fallback/hexdump.bash (100%) rename completions/_hwclock => completions-fallback/hwclock.bash (100%) rename completions/_insmod => completions-fallback/insmod.bash (100%) rename completions/_ionice => completions-fallback/ionice.bash (100%) rename completions/_jj => completions-fallback/jj.bash (100%) rename completions/_jungle => completions-fallback/jungle.bash (100%) rename completions/_keyring => completions-fallback/keyring.bash (100%) rename completions/_kontena => completions-fallback/kontena.bash (100%) rename completions/_look => completions-fallback/look.bash (100%) rename completions/_mdbook => completions-fallback/mdbook.bash (100%) rename completions/_mock => completions-fallback/mock.bash (100%) rename completions/_modinfo => completions-fallback/modinfo.bash (100%) rename completions/_modprobe => completions-fallback/modprobe.bash (100%) rename completions/_modules => completions-fallback/modules.bash (100%) rename completions/_mount => completions-fallback/mount.bash (100%) rename completions/_mount.linux => completions-fallback/mount.linux.bash (100%) rename completions/_mtr => completions-fallback/mtr.bash (100%) rename completions/_newgrp => completions-fallback/newgrp.bash (100%) rename completions/_nmcli => completions-fallback/nmcli.bash (100%) rename completions/_nox => completions-fallback/nox.bash (100%) rename completions/_nvm => completions-fallback/nvm.bash (100%) rename completions/_pip => completions-fallback/pip.bash (100%) rename completions/_pipenv => completions-fallback/pipenv.bash (100%) rename completions/_renice => completions-fallback/renice.bash (100%) rename completions/_repomanage => completions-fallback/repomanage.bash (100%) rename completions/_reptyr => completions-fallback/reptyr.bash (100%) rename completions/_rfkill => completions-fallback/rfkill.bash (100%) rename completions/_rg => completions-fallback/rg.bash (100%) rename completions/_rmmod => completions-fallback/rmmod.bash (100%) rename completions/_rtcwake => completions-fallback/rtcwake.bash (100%) rename completions/_ruff => completions-fallback/ruff.bash (100%) rename completions/_runuser => completions-fallback/runuser.bash (100%) rename completions/_rustup => completions-fallback/rustup.bash (100%) rename completions/_secret-tool => completions-fallback/secret-tool.bash (100%) rename completions/_shtab => completions-fallback/shtab.bash (100%) rename completions/_slackpkg => completions-fallback/slackpkg.bash (100%) rename completions/_sops => completions-fallback/sops.bash (100%) rename completions/_stern => completions-fallback/stern.bash (100%) rename completions/_stripe => completions-fallback/stripe.bash (100%) rename completions/_su => completions-fallback/su.bash (100%) rename completions/_svn => completions-fallback/svn.bash (100%) rename completions/_svnadmin => completions-fallback/svnadmin.bash (100%) rename completions/_svnlook => completions-fallback/svnlook.bash (100%) rename completions/_task => completions-fallback/task.bash (100%) rename completions/_tokio-console => completions-fallback/tokio-console.bash (100%) rename completions/_udevadm => completions-fallback/udevadm.bash (100%) rename completions/_umount => completions-fallback/umount.bash (100%) rename completions/_umount.linux => completions-fallback/umount.linux.bash (100%) rename completions/_uvx => completions-fallback/uvx.bash (100%) rename completions/_vault => completions-fallback/vault.bash (100%) rename completions/_wasmer => completions-fallback/wasmer.bash (100%) rename completions/_write => completions-fallback/write.bash (100%) rename completions/_xm => completions-fallback/xm.bash (100%) rename completions/_yq => completions-fallback/yq.bash (100%) rename completions/_yum => completions-fallback/yum.bash (100%) rename {helpers => helpers-core}/Makefile.am (100%) rename {helpers => helpers-core}/make-extract-targets.awk (100%) rename {helpers => helpers-core}/perl (100%) rename {helpers => helpers-core}/python (100%) delete mode 120000 test/fallback/completions/adb create mode 120000 test/fallback/completions/adb.bash delete mode 120000 test/fallback/completions/argc create mode 120000 test/fallback/completions/argc.bash delete mode 120000 test/fallback/completions/bombadil create mode 120000 test/fallback/completions/bombadil.bash delete mode 120000 test/fallback/completions/cal create mode 120000 test/fallback/completions/cal.bash delete mode 120000 test/fallback/completions/cargo create mode 120000 test/fallback/completions/cargo.bash delete mode 120000 test/fallback/completions/chfn create mode 120000 test/fallback/completions/chfn.bash delete mode 120000 test/fallback/completions/chsh create mode 120000 test/fallback/completions/chsh.bash delete mode 120000 test/fallback/completions/coder create mode 120000 test/fallback/completions/coder.bash delete mode 120000 test/fallback/completions/delta create mode 120000 test/fallback/completions/delta.bash delete mode 120000 test/fallback/completions/dmesg create mode 120000 test/fallback/completions/dmesg.bash delete mode 120000 test/fallback/completions/eject create mode 120000 test/fallback/completions/eject.bash delete mode 120000 test/fallback/completions/flamegraph create mode 120000 test/fallback/completions/flamegraph.bash delete mode 120000 test/fallback/completions/gaiacli create mode 120000 test/fallback/completions/gaiacli.bash delete mode 120000 test/fallback/completions/gh create mode 120000 test/fallback/completions/gh.bash delete mode 120000 test/fallback/completions/golangci-lint create mode 120000 test/fallback/completions/golangci-lint.bash delete mode 120000 test/fallback/completions/gsctl create mode 120000 test/fallback/completions/gsctl.bash delete mode 120000 test/fallback/completions/hexdump create mode 120000 test/fallback/completions/hexdump.bash delete mode 120000 test/fallback/completions/hwclock create mode 120000 test/fallback/completions/hwclock.bash delete mode 120000 test/fallback/completions/insmod create mode 120000 test/fallback/completions/insmod.bash delete mode 120000 test/fallback/completions/ionice create mode 120000 test/fallback/completions/ionice.bash delete mode 120000 test/fallback/completions/jj create mode 120000 test/fallback/completions/jj.bash delete mode 120000 test/fallback/completions/jungle create mode 120000 test/fallback/completions/jungle.bash delete mode 120000 test/fallback/completions/keyring create mode 120000 test/fallback/completions/keyring.bash delete mode 120000 test/fallback/completions/kontena create mode 120000 test/fallback/completions/kontena.bash delete mode 120000 test/fallback/completions/look create mode 120000 test/fallback/completions/look.bash delete mode 120000 test/fallback/completions/mdbook create mode 120000 test/fallback/completions/mdbook.bash delete mode 120000 test/fallback/completions/mock create mode 120000 test/fallback/completions/mock.bash delete mode 120000 test/fallback/completions/modinfo create mode 120000 test/fallback/completions/modinfo.bash delete mode 120000 test/fallback/completions/modprobe create mode 120000 test/fallback/completions/modprobe.bash delete mode 120000 test/fallback/completions/modules create mode 120000 test/fallback/completions/modules.bash delete mode 120000 test/fallback/completions/mount create mode 120000 test/fallback/completions/mount.bash delete mode 120000 test/fallback/completions/mount.linux create mode 120000 test/fallback/completions/mount.linux.bash delete mode 120000 test/fallback/completions/mtr create mode 120000 test/fallback/completions/mtr.bash delete mode 120000 test/fallback/completions/newgrp create mode 120000 test/fallback/completions/newgrp.bash delete mode 120000 test/fallback/completions/nmcli create mode 120000 test/fallback/completions/nmcli.bash delete mode 120000 test/fallback/completions/nox create mode 120000 test/fallback/completions/nox.bash delete mode 120000 test/fallback/completions/nvm create mode 120000 test/fallback/completions/nvm.bash delete mode 120000 test/fallback/completions/pip create mode 120000 test/fallback/completions/pip.bash delete mode 120000 test/fallback/completions/pipenv create mode 120000 test/fallback/completions/pipenv.bash delete mode 120000 test/fallback/completions/renice create mode 120000 test/fallback/completions/renice.bash delete mode 120000 test/fallback/completions/repomanage create mode 120000 test/fallback/completions/repomanage.bash delete mode 120000 test/fallback/completions/reptyr create mode 120000 test/fallback/completions/reptyr.bash delete mode 120000 test/fallback/completions/rfkill create mode 120000 test/fallback/completions/rfkill.bash delete mode 120000 test/fallback/completions/rg create mode 120000 test/fallback/completions/rg.bash delete mode 120000 test/fallback/completions/rmmod create mode 120000 test/fallback/completions/rmmod.bash delete mode 120000 test/fallback/completions/rtcwake create mode 120000 test/fallback/completions/rtcwake.bash delete mode 120000 test/fallback/completions/ruff create mode 120000 test/fallback/completions/ruff.bash delete mode 120000 test/fallback/completions/runuser create mode 120000 test/fallback/completions/runuser.bash delete mode 120000 test/fallback/completions/rustup create mode 120000 test/fallback/completions/rustup.bash delete mode 120000 test/fallback/completions/secret-tool create mode 120000 test/fallback/completions/secret-tool.bash delete mode 120000 test/fallback/completions/shtab create mode 120000 test/fallback/completions/shtab.bash delete mode 120000 test/fallback/completions/slackpkg create mode 120000 test/fallback/completions/slackpkg.bash delete mode 120000 test/fallback/completions/sops create mode 120000 test/fallback/completions/sops.bash delete mode 120000 test/fallback/completions/stern create mode 120000 test/fallback/completions/stern.bash delete mode 120000 test/fallback/completions/stripe create mode 120000 test/fallback/completions/stripe.bash delete mode 120000 test/fallback/completions/su create mode 120000 test/fallback/completions/su.bash delete mode 120000 test/fallback/completions/svn create mode 120000 test/fallback/completions/svn.bash delete mode 120000 test/fallback/completions/svnadmin create mode 120000 test/fallback/completions/svnadmin.bash delete mode 120000 test/fallback/completions/svnlook create mode 120000 test/fallback/completions/svnlook.bash delete mode 120000 test/fallback/completions/task create mode 120000 test/fallback/completions/task.bash delete mode 120000 test/fallback/completions/tokio-console create mode 120000 test/fallback/completions/tokio-console.bash delete mode 120000 test/fallback/completions/udevadm create mode 120000 test/fallback/completions/udevadm.bash delete mode 120000 test/fallback/completions/umount create mode 120000 test/fallback/completions/umount.bash delete mode 120000 test/fallback/completions/umount.linux create mode 120000 test/fallback/completions/umount.linux.bash delete mode 120000 test/fallback/completions/uvx create mode 120000 test/fallback/completions/uvx.bash delete mode 120000 test/fallback/completions/vault create mode 120000 test/fallback/completions/vault.bash delete mode 120000 test/fallback/completions/wasmer create mode 120000 test/fallback/completions/wasmer.bash delete mode 120000 test/fallback/completions/write create mode 120000 test/fallback/completions/write.bash delete mode 120000 test/fallback/completions/xm create mode 120000 test/fallback/completions/xm.bash delete mode 120000 test/fallback/completions/yq create mode 120000 test/fallback/completions/yq.bash delete mode 120000 test/fallback/completions/yum create mode 120000 test/fallback/completions/yum.bash diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index daed78e469b..a590b34c7c1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,8 +18,8 @@ repos: hooks: - id: shfmt types: [text] - files: ^(bash_completion(\.d/[^/]+\.bash)?|completions/.+|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ - exclude: ^completions/(\.gitignore|Makefile.*)$ + files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-core/.+|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ + exclude: ^completions-core/(\.gitignore|Makefile.*)$ - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.11.0.1 @@ -27,8 +27,8 @@ repos: - id: shellcheck args: [-f, gcc] types: [text] - files: ^(bash_completion(\.d/[^/]+\.bash)?|completions/.+|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ - exclude: ^completions/(\.gitignore|Makefile.*)$ + files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-core/.+|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ + exclude: ^completions-core/(\.gitignore|Makefile.*)$ require_serial: false # We disable SC1090 anyway, so parallel is ok - repo: local @@ -44,7 +44,7 @@ repos: name: update-test-fallback-links language: script entry: test/fallback/update-fallback-links - files: ^completions/_ + files: ^completions-core/_ pass_filenames: false - repo: https://github.com/astral-sh/ruff-pre-commit @@ -52,12 +52,12 @@ repos: hooks: - id: ruff-check types: [text] - files: ^(helpers/python|.+\.py)$ - exclude: ^completions/ + files: ^(helpers-core/python|.+\.py)$ + exclude: ^completions-core/ - id: ruff-format types: [text] - files: ^(helpers/python|.+\.py)$ - exclude: ^completions/ + files: ^(helpers-core/python|.+\.py)$ + exclude: ^completions-core/ - repo: local hooks: @@ -69,15 +69,15 @@ repos: entry: venv-run mypy args: [--config-file=test/setup.cfg] types: [python] - # Intentionally not run on helpers/python (we support very old versions) - exclude: ^completions/|^test/fixtures/pytest/ + # Intentionally not run on helpers-core/python (we support very old versions) + exclude: ^completions-core/|^test/fixtures/pytest/ - repo: https://github.com/perltidy/perltidy rev: "20250912" hooks: - id: perltidy types: [text] - files: ^(helpers/perl|.+\.p[ml])$ + files: ^(helpers-core/perl|.+\.p[ml])$ - repo: https://github.com/scop/pre-commit-perlcritic rev: v1.156-1 @@ -85,7 +85,7 @@ repos: - id: perlcritic args: [--quiet, --verbose, "5"] types: [text] - files: ^(helpers/perl|.+\.p[ml])$ + files: ^(helpers-core/perl|.+\.p[ml])$ - repo: https://github.com/jackdewinter/pymarkdown rev: v0.9.33 diff --git a/completions/.gitignore b/completions-core/.gitignore similarity index 100% rename from completions/.gitignore rename to completions-core/.gitignore diff --git a/completions/2to3 b/completions-core/2to3.bash similarity index 100% rename from completions/2to3 rename to completions-core/2to3.bash diff --git a/completions/7z b/completions-core/7z.bash similarity index 100% rename from completions/7z rename to completions-core/7z.bash diff --git a/completions/Makefile.am b/completions-core/Makefile.am similarity index 100% rename from completions/Makefile.am rename to completions-core/Makefile.am diff --git a/completions/a2x b/completions-core/a2x.bash similarity index 100% rename from completions/a2x rename to completions-core/a2x.bash diff --git a/completions/abook b/completions-core/abook.bash similarity index 100% rename from completions/abook rename to completions-core/abook.bash diff --git a/completions/aclocal b/completions-core/aclocal.bash similarity index 100% rename from completions/aclocal rename to completions-core/aclocal.bash diff --git a/completions/acpi b/completions-core/acpi.bash similarity index 100% rename from completions/acpi rename to completions-core/acpi.bash diff --git a/completions/add_members b/completions-core/add_members.bash similarity index 100% rename from completions/add_members rename to completions-core/add_members.bash diff --git a/completions/alias b/completions-core/alias.bash similarity index 100% rename from completions/alias rename to completions-core/alias.bash diff --git a/completions/ant b/completions-core/ant.bash similarity index 100% rename from completions/ant rename to completions-core/ant.bash diff --git a/completions/apache2ctl b/completions-core/apache2ctl.bash similarity index 100% rename from completions/apache2ctl rename to completions-core/apache2ctl.bash diff --git a/completions/appdata-validate b/completions-core/appdata-validate.bash similarity index 100% rename from completions/appdata-validate rename to completions-core/appdata-validate.bash diff --git a/completions/apt-build b/completions-core/apt-build.bash similarity index 100% rename from completions/apt-build rename to completions-core/apt-build.bash diff --git a/completions/apt-cache b/completions-core/apt-cache.bash similarity index 100% rename from completions/apt-cache rename to completions-core/apt-cache.bash diff --git a/completions/apt-get b/completions-core/apt-get.bash similarity index 100% rename from completions/apt-get rename to completions-core/apt-get.bash diff --git a/completions/apt-mark b/completions-core/apt-mark.bash similarity index 100% rename from completions/apt-mark rename to completions-core/apt-mark.bash diff --git a/completions/aptitude b/completions-core/aptitude.bash similarity index 100% rename from completions/aptitude rename to completions-core/aptitude.bash diff --git a/completions/arch b/completions-core/arch.bash similarity index 100% rename from completions/arch rename to completions-core/arch.bash diff --git a/completions/arp b/completions-core/arp.bash similarity index 100% rename from completions/arp rename to completions-core/arp.bash diff --git a/completions/arping b/completions-core/arping.bash similarity index 100% rename from completions/arping rename to completions-core/arping.bash diff --git a/completions/arpspoof b/completions-core/arpspoof.bash similarity index 100% rename from completions/arpspoof rename to completions-core/arpspoof.bash diff --git a/completions/asciidoc b/completions-core/asciidoc.bash similarity index 100% rename from completions/asciidoc rename to completions-core/asciidoc.bash diff --git a/completions/aspell b/completions-core/aspell.bash similarity index 100% rename from completions/aspell rename to completions-core/aspell.bash diff --git a/completions/autoconf b/completions-core/autoconf.bash similarity index 100% rename from completions/autoconf rename to completions-core/autoconf.bash diff --git a/completions/automake b/completions-core/automake.bash similarity index 100% rename from completions/automake rename to completions-core/automake.bash diff --git a/completions/autoreconf b/completions-core/autoreconf.bash similarity index 100% rename from completions/autoreconf rename to completions-core/autoreconf.bash diff --git a/completions/autorpm b/completions-core/autorpm.bash similarity index 100% rename from completions/autorpm rename to completions-core/autorpm.bash diff --git a/completions/autoscan b/completions-core/autoscan.bash similarity index 100% rename from completions/autoscan rename to completions-core/autoscan.bash diff --git a/completions/avahi-browse b/completions-core/avahi-browse.bash similarity index 100% rename from completions/avahi-browse rename to completions-core/avahi-browse.bash diff --git a/completions/avctrl b/completions-core/avctrl.bash similarity index 100% rename from completions/avctrl rename to completions-core/avctrl.bash diff --git a/completions/badblocks b/completions-core/badblocks.bash similarity index 100% rename from completions/badblocks rename to completions-core/badblocks.bash diff --git a/completions/bind b/completions-core/bind.bash similarity index 100% rename from completions/bind rename to completions-core/bind.bash diff --git a/completions/bk b/completions-core/bk.bash similarity index 100% rename from completions/bk rename to completions-core/bk.bash diff --git a/completions/brctl b/completions-core/brctl.bash similarity index 100% rename from completions/brctl rename to completions-core/brctl.bash diff --git a/completions/btdownloadheadless.py b/completions-core/btdownloadheadless.py.bash similarity index 100% rename from completions/btdownloadheadless.py rename to completions-core/btdownloadheadless.py.bash diff --git a/completions/bts b/completions-core/bts.bash similarity index 100% rename from completions/bts rename to completions-core/bts.bash diff --git a/completions/bzip2 b/completions-core/bzip2.bash similarity index 100% rename from completions/bzip2 rename to completions-core/bzip2.bash diff --git a/completions/cancel b/completions-core/cancel.bash similarity index 100% rename from completions/cancel rename to completions-core/cancel.bash diff --git a/completions/cardctl b/completions-core/cardctl.bash similarity index 100% rename from completions/cardctl rename to completions-core/cardctl.bash diff --git a/completions/carton b/completions-core/carton.bash similarity index 100% rename from completions/carton rename to completions-core/carton.bash diff --git a/completions/ccache b/completions-core/ccache.bash similarity index 100% rename from completions/ccache rename to completions-core/ccache.bash diff --git a/completions/ccze b/completions-core/ccze.bash similarity index 100% rename from completions/ccze rename to completions-core/ccze.bash diff --git a/completions/cd b/completions-core/cd.bash similarity index 100% rename from completions/cd rename to completions-core/cd.bash diff --git a/completions/cfagent b/completions-core/cfagent.bash similarity index 100% rename from completions/cfagent rename to completions-core/cfagent.bash diff --git a/completions/cfrun b/completions-core/cfrun.bash similarity index 100% rename from completions/cfrun rename to completions-core/cfrun.bash diff --git a/completions/chage b/completions-core/chage.bash similarity index 100% rename from completions/chage rename to completions-core/chage.bash diff --git a/completions/change_pw b/completions-core/change_pw.bash similarity index 100% rename from completions/change_pw rename to completions-core/change_pw.bash diff --git a/completions/check_db b/completions-core/check_db.bash similarity index 100% rename from completions/check_db rename to completions-core/check_db.bash diff --git a/completions/check_perms b/completions-core/check_perms.bash similarity index 100% rename from completions/check_perms rename to completions-core/check_perms.bash diff --git a/completions/checksec b/completions-core/checksec.bash similarity index 100% rename from completions/checksec rename to completions-core/checksec.bash diff --git a/completions/chflags b/completions-core/chflags.bash similarity index 100% rename from completions/chflags rename to completions-core/chflags.bash diff --git a/completions/chgrp b/completions-core/chgrp.bash similarity index 100% rename from completions/chgrp rename to completions-core/chgrp.bash diff --git a/completions/chkconfig b/completions-core/chkconfig.bash similarity index 100% rename from completions/chkconfig rename to completions-core/chkconfig.bash diff --git a/completions/chmod b/completions-core/chmod.bash similarity index 100% rename from completions/chmod rename to completions-core/chmod.bash diff --git a/completions/chown b/completions-core/chown.bash similarity index 100% rename from completions/chown rename to completions-core/chown.bash diff --git a/completions/chpasswd b/completions-core/chpasswd.bash similarity index 100% rename from completions/chpasswd rename to completions-core/chpasswd.bash diff --git a/completions/chromium-browser b/completions-core/chromium-browser.bash similarity index 100% rename from completions/chromium-browser rename to completions-core/chromium-browser.bash diff --git a/completions/chronyc b/completions-core/chronyc.bash similarity index 100% rename from completions/chronyc rename to completions-core/chronyc.bash diff --git a/completions/chrpath b/completions-core/chrpath.bash similarity index 100% rename from completions/chrpath rename to completions-core/chrpath.bash diff --git a/completions/cksfv b/completions-core/cksfv.bash similarity index 100% rename from completions/cksfv rename to completions-core/cksfv.bash diff --git a/completions/cleanarch b/completions-core/cleanarch.bash similarity index 100% rename from completions/cleanarch rename to completions-core/cleanarch.bash diff --git a/completions/clisp b/completions-core/clisp.bash similarity index 100% rename from completions/clisp rename to completions-core/clisp.bash diff --git a/completions/clone_member b/completions-core/clone_member.bash similarity index 100% rename from completions/clone_member rename to completions-core/clone_member.bash diff --git a/completions/complete b/completions-core/complete.bash similarity index 100% rename from completions/complete rename to completions-core/complete.bash diff --git a/completions/config_list b/completions-core/config_list.bash similarity index 100% rename from completions/config_list rename to completions-core/config_list.bash diff --git a/completions/configure b/completions-core/configure.bash similarity index 100% rename from completions/configure rename to completions-core/configure.bash diff --git a/completions/convert b/completions-core/convert.bash similarity index 100% rename from completions/convert rename to completions-core/convert.bash diff --git a/completions/cowsay b/completions-core/cowsay.bash similarity index 100% rename from completions/cowsay rename to completions-core/cowsay.bash diff --git a/completions/cpan2dist b/completions-core/cpan2dist.bash similarity index 100% rename from completions/cpan2dist rename to completions-core/cpan2dist.bash diff --git a/completions/cpio b/completions-core/cpio.bash similarity index 100% rename from completions/cpio rename to completions-core/cpio.bash diff --git a/completions/cppcheck b/completions-core/cppcheck.bash similarity index 100% rename from completions/cppcheck rename to completions-core/cppcheck.bash diff --git a/completions/crontab b/completions-core/crontab.bash similarity index 100% rename from completions/crontab rename to completions-core/crontab.bash diff --git a/completions/cryptsetup b/completions-core/cryptsetup.bash similarity index 100% rename from completions/cryptsetup rename to completions-core/cryptsetup.bash diff --git a/completions/curl b/completions-core/curl.bash similarity index 100% rename from completions/curl rename to completions-core/curl.bash diff --git a/completions/cvs b/completions-core/cvs.bash similarity index 100% rename from completions/cvs rename to completions-core/cvs.bash diff --git a/completions/cvsps b/completions-core/cvsps.bash similarity index 100% rename from completions/cvsps rename to completions-core/cvsps.bash diff --git a/completions/dd b/completions-core/dd.bash similarity index 100% rename from completions/dd rename to completions-core/dd.bash diff --git a/completions/declare b/completions-core/declare.bash similarity index 100% rename from completions/declare rename to completions-core/declare.bash diff --git a/completions/deja-dup b/completions-core/deja-dup.bash similarity index 100% rename from completions/deja-dup rename to completions-core/deja-dup.bash diff --git a/completions/desktop-file-validate b/completions-core/desktop-file-validate.bash similarity index 100% rename from completions/desktop-file-validate rename to completions-core/desktop-file-validate.bash diff --git a/completions/dhclient b/completions-core/dhclient.bash similarity index 100% rename from completions/dhclient rename to completions-core/dhclient.bash diff --git a/completions/dict b/completions-core/dict.bash similarity index 100% rename from completions/dict rename to completions-core/dict.bash diff --git a/completions/dmypy b/completions-core/dmypy.bash similarity index 100% rename from completions/dmypy rename to completions-core/dmypy.bash diff --git a/completions/dnssec-keygen b/completions-core/dnssec-keygen.bash similarity index 100% rename from completions/dnssec-keygen rename to completions-core/dnssec-keygen.bash diff --git a/completions/dnsspoof b/completions-core/dnsspoof.bash similarity index 100% rename from completions/dnsspoof rename to completions-core/dnsspoof.bash diff --git a/completions/dot b/completions-core/dot.bash similarity index 100% rename from completions/dot rename to completions-core/dot.bash diff --git a/completions/dpkg-source b/completions-core/dpkg-source.bash similarity index 100% rename from completions/dpkg-source rename to completions-core/dpkg-source.bash diff --git a/completions/dpkg b/completions-core/dpkg.bash similarity index 100% rename from completions/dpkg rename to completions-core/dpkg.bash diff --git a/completions/dselect b/completions-core/dselect.bash similarity index 100% rename from completions/dselect rename to completions-core/dselect.bash diff --git a/completions/dsniff b/completions-core/dsniff.bash similarity index 100% rename from completions/dsniff rename to completions-core/dsniff.bash diff --git a/completions/dumpdb b/completions-core/dumpdb.bash similarity index 100% rename from completions/dumpdb rename to completions-core/dumpdb.bash diff --git a/completions/dumpe2fs b/completions-core/dumpe2fs.bash similarity index 100% rename from completions/dumpe2fs rename to completions-core/dumpe2fs.bash diff --git a/completions/e2freefrag b/completions-core/e2freefrag.bash similarity index 100% rename from completions/e2freefrag rename to completions-core/e2freefrag.bash diff --git a/completions/e2label b/completions-core/e2label.bash similarity index 100% rename from completions/e2label rename to completions-core/e2label.bash diff --git a/completions/ebtables b/completions-core/ebtables.bash similarity index 100% rename from completions/ebtables rename to completions-core/ebtables.bash diff --git a/completions/ecryptfs-migrate-home b/completions-core/ecryptfs-migrate-home.bash similarity index 100% rename from completions/ecryptfs-migrate-home rename to completions-core/ecryptfs-migrate-home.bash diff --git a/completions/env b/completions-core/env.bash similarity index 100% rename from completions/env rename to completions-core/env.bash diff --git a/completions/eog b/completions-core/eog.bash similarity index 100% rename from completions/eog rename to completions-core/eog.bash diff --git a/completions/ether-wake b/completions-core/ether-wake.bash similarity index 100% rename from completions/ether-wake rename to completions-core/ether-wake.bash diff --git a/completions/evince b/completions-core/evince.bash similarity index 100% rename from completions/evince rename to completions-core/evince.bash diff --git a/completions/explodepkg b/completions-core/explodepkg.bash similarity index 100% rename from completions/explodepkg rename to completions-core/explodepkg.bash diff --git a/completions/export b/completions-core/export.bash similarity index 100% rename from completions/export rename to completions-core/export.bash diff --git a/completions/faillog b/completions-core/faillog.bash similarity index 100% rename from completions/faillog rename to completions-core/faillog.bash diff --git a/completions/fbgs b/completions-core/fbgs.bash similarity index 100% rename from completions/fbgs rename to completions-core/fbgs.bash diff --git a/completions/fbi b/completions-core/fbi.bash similarity index 100% rename from completions/fbi rename to completions-core/fbi.bash diff --git a/completions/feh b/completions-core/feh.bash similarity index 100% rename from completions/feh rename to completions-core/feh.bash diff --git a/completions/file-roller b/completions-core/file-roller.bash similarity index 100% rename from completions/file-roller rename to completions-core/file-roller.bash diff --git a/completions/file b/completions-core/file.bash similarity index 100% rename from completions/file rename to completions-core/file.bash diff --git a/completions/filefrag b/completions-core/filefrag.bash similarity index 100% rename from completions/filefrag rename to completions-core/filefrag.bash diff --git a/completions/filesnarf b/completions-core/filesnarf.bash similarity index 100% rename from completions/filesnarf rename to completions-core/filesnarf.bash diff --git a/completions/find b/completions-core/find.bash similarity index 100% rename from completions/find rename to completions-core/find.bash diff --git a/completions/find_member b/completions-core/find_member.bash similarity index 100% rename from completions/find_member rename to completions-core/find_member.bash diff --git a/completions/fio b/completions-core/fio.bash similarity index 100% rename from completions/fio rename to completions-core/fio.bash diff --git a/completions/firefox b/completions-core/firefox.bash similarity index 100% rename from completions/firefox rename to completions-core/firefox.bash diff --git a/completions/flake8 b/completions-core/flake8.bash similarity index 100% rename from completions/flake8 rename to completions-core/flake8.bash diff --git a/completions/fprintd-delete b/completions-core/fprintd-delete.bash similarity index 100% rename from completions/fprintd-delete rename to completions-core/fprintd-delete.bash diff --git a/completions/fprintd-enroll b/completions-core/fprintd-enroll.bash similarity index 100% rename from completions/fprintd-enroll rename to completions-core/fprintd-enroll.bash diff --git a/completions/free b/completions-core/free.bash similarity index 100% rename from completions/free rename to completions-core/free.bash diff --git a/completions/freebsd-update b/completions-core/freebsd-update.bash similarity index 100% rename from completions/freebsd-update rename to completions-core/freebsd-update.bash diff --git a/completions/freeciv-server b/completions-core/freeciv-server.bash similarity index 100% rename from completions/freeciv-server rename to completions-core/freeciv-server.bash diff --git a/completions/freeciv b/completions-core/freeciv.bash similarity index 100% rename from completions/freeciv rename to completions-core/freeciv.bash diff --git a/completions/function b/completions-core/function.bash similarity index 100% rename from completions/function rename to completions-core/function.bash diff --git a/completions/fusermount b/completions-core/fusermount.bash similarity index 100% rename from completions/fusermount rename to completions-core/fusermount.bash diff --git a/completions/gcc b/completions-core/gcc.bash similarity index 100% rename from completions/gcc rename to completions-core/gcc.bash diff --git a/completions/gcl b/completions-core/gcl.bash similarity index 100% rename from completions/gcl rename to completions-core/gcl.bash diff --git a/completions/gdb b/completions-core/gdb.bash similarity index 100% rename from completions/gdb rename to completions-core/gdb.bash diff --git a/completions/genaliases b/completions-core/genaliases.bash similarity index 100% rename from completions/genaliases rename to completions-core/genaliases.bash diff --git a/completions/gendiff b/completions-core/gendiff.bash similarity index 100% rename from completions/gendiff rename to completions-core/gendiff.bash diff --git a/completions/genisoimage b/completions-core/genisoimage.bash similarity index 100% rename from completions/genisoimage rename to completions-core/genisoimage.bash diff --git a/completions/geoiplookup b/completions-core/geoiplookup.bash similarity index 100% rename from completions/geoiplookup rename to completions-core/geoiplookup.bash diff --git a/completions/getconf b/completions-core/getconf.bash similarity index 100% rename from completions/getconf rename to completions-core/getconf.bash diff --git a/completions/getent b/completions-core/getent.bash similarity index 100% rename from completions/getent rename to completions-core/getent.bash diff --git a/completions/gkrellm b/completions-core/gkrellm.bash similarity index 100% rename from completions/gkrellm rename to completions-core/gkrellm.bash diff --git a/completions/gm b/completions-core/gm.bash similarity index 100% rename from completions/gm rename to completions-core/gm.bash diff --git a/completions/gnatmake b/completions-core/gnatmake.bash similarity index 100% rename from completions/gnatmake rename to completions-core/gnatmake.bash diff --git a/completions/gnokii b/completions-core/gnokii.bash similarity index 100% rename from completions/gnokii rename to completions-core/gnokii.bash diff --git a/completions/gnome-mplayer b/completions-core/gnome-mplayer.bash similarity index 100% rename from completions/gnome-mplayer rename to completions-core/gnome-mplayer.bash diff --git a/completions/gnome-screenshot b/completions-core/gnome-screenshot.bash similarity index 100% rename from completions/gnome-screenshot rename to completions-core/gnome-screenshot.bash diff --git a/completions/gpasswd b/completions-core/gpasswd.bash similarity index 100% rename from completions/gpasswd rename to completions-core/gpasswd.bash diff --git a/completions/gpg b/completions-core/gpg.bash similarity index 100% rename from completions/gpg rename to completions-core/gpg.bash diff --git a/completions/gpg2 b/completions-core/gpg2.bash similarity index 100% rename from completions/gpg2 rename to completions-core/gpg2.bash diff --git a/completions/gpgv b/completions-core/gpgv.bash similarity index 100% rename from completions/gpgv rename to completions-core/gpgv.bash diff --git a/completions/gphoto2 b/completions-core/gphoto2.bash similarity index 100% rename from completions/gphoto2 rename to completions-core/gphoto2.bash diff --git a/completions/gprof b/completions-core/gprof.bash similarity index 100% rename from completions/gprof rename to completions-core/gprof.bash diff --git a/completions/groupadd b/completions-core/groupadd.bash similarity index 100% rename from completions/groupadd rename to completions-core/groupadd.bash diff --git a/completions/groupdel b/completions-core/groupdel.bash similarity index 100% rename from completions/groupdel rename to completions-core/groupdel.bash diff --git a/completions/groupmems b/completions-core/groupmems.bash similarity index 100% rename from completions/groupmems rename to completions-core/groupmems.bash diff --git a/completions/groupmod b/completions-core/groupmod.bash similarity index 100% rename from completions/groupmod rename to completions-core/groupmod.bash diff --git a/completions/growisofs b/completions-core/growisofs.bash similarity index 100% rename from completions/growisofs rename to completions-core/growisofs.bash diff --git a/completions/grpck b/completions-core/grpck.bash similarity index 100% rename from completions/grpck rename to completions-core/grpck.bash diff --git a/completions/gssdp-discover b/completions-core/gssdp-discover.bash similarity index 100% rename from completions/gssdp-discover rename to completions-core/gssdp-discover.bash diff --git a/completions/gzip b/completions-core/gzip.bash similarity index 100% rename from completions/gzip rename to completions-core/gzip.bash diff --git a/completions/hash b/completions-core/hash.bash similarity index 100% rename from completions/hash rename to completions-core/hash.bash diff --git a/completions/hcitool b/completions-core/hcitool.bash similarity index 100% rename from completions/hcitool rename to completions-core/hcitool.bash diff --git a/completions/hddtemp b/completions-core/hddtemp.bash similarity index 100% rename from completions/hddtemp rename to completions-core/hddtemp.bash diff --git a/completions/help b/completions-core/help.bash similarity index 100% rename from completions/help rename to completions-core/help.bash diff --git a/completions/hid2hci b/completions-core/hid2hci.bash similarity index 100% rename from completions/hid2hci rename to completions-core/hid2hci.bash diff --git a/completions/hostname b/completions-core/hostname.bash similarity index 100% rename from completions/hostname rename to completions-core/hostname.bash diff --git a/completions/hping2 b/completions-core/hping2.bash similarity index 100% rename from completions/hping2 rename to completions-core/hping2.bash diff --git a/completions/htop b/completions-core/htop.bash similarity index 100% rename from completions/htop rename to completions-core/htop.bash diff --git a/completions/htpasswd b/completions-core/htpasswd.bash similarity index 100% rename from completions/htpasswd rename to completions-core/htpasswd.bash diff --git a/completions/hunspell b/completions-core/hunspell.bash similarity index 100% rename from completions/hunspell rename to completions-core/hunspell.bash diff --git a/completions/iconv b/completions-core/iconv.bash similarity index 100% rename from completions/iconv rename to completions-core/iconv.bash diff --git a/completions/id b/completions-core/id.bash similarity index 100% rename from completions/id rename to completions-core/id.bash diff --git a/completions/idn b/completions-core/idn.bash similarity index 100% rename from completions/idn rename to completions-core/idn.bash diff --git a/completions/ifstat b/completions-core/ifstat.bash similarity index 100% rename from completions/ifstat rename to completions-core/ifstat.bash diff --git a/completions/iftop b/completions-core/iftop.bash similarity index 100% rename from completions/iftop rename to completions-core/iftop.bash diff --git a/completions/ifup b/completions-core/ifup.bash similarity index 100% rename from completions/ifup rename to completions-core/ifup.bash diff --git a/completions/influx b/completions-core/influx.bash similarity index 100% rename from completions/influx rename to completions-core/influx.bash diff --git a/completions/info b/completions-core/info.bash similarity index 100% rename from completions/info rename to completions-core/info.bash diff --git a/completions/inject b/completions-core/inject.bash similarity index 100% rename from completions/inject rename to completions-core/inject.bash diff --git a/completions/inotifywait b/completions-core/inotifywait.bash similarity index 100% rename from completions/inotifywait rename to completions-core/inotifywait.bash diff --git a/completions/installpkg b/completions-core/installpkg.bash similarity index 100% rename from completions/installpkg rename to completions-core/installpkg.bash diff --git a/completions/interdiff b/completions-core/interdiff.bash similarity index 100% rename from completions/interdiff rename to completions-core/interdiff.bash diff --git a/completions/invoke-rc.d b/completions-core/invoke-rc.d.bash similarity index 100% rename from completions/invoke-rc.d rename to completions-core/invoke-rc.d.bash diff --git a/completions/ip b/completions-core/ip.bash similarity index 100% rename from completions/ip rename to completions-core/ip.bash diff --git a/completions/ipcalc b/completions-core/ipcalc.bash similarity index 100% rename from completions/ipcalc rename to completions-core/ipcalc.bash diff --git a/completions/iperf b/completions-core/iperf.bash similarity index 100% rename from completions/iperf rename to completions-core/iperf.bash diff --git a/completions/ipmitool b/completions-core/ipmitool.bash similarity index 100% rename from completions/ipmitool rename to completions-core/ipmitool.bash diff --git a/completions/ipsec b/completions-core/ipsec.bash similarity index 100% rename from completions/ipsec rename to completions-core/ipsec.bash diff --git a/completions/iptables b/completions-core/iptables.bash similarity index 100% rename from completions/iptables rename to completions-core/iptables.bash diff --git a/completions/ipv6calc b/completions-core/ipv6calc.bash similarity index 100% rename from completions/ipv6calc rename to completions-core/ipv6calc.bash diff --git a/completions/iscsiadm b/completions-core/iscsiadm.bash similarity index 100% rename from completions/iscsiadm rename to completions-core/iscsiadm.bash diff --git a/completions/isort b/completions-core/isort.bash similarity index 100% rename from completions/isort rename to completions-core/isort.bash diff --git a/completions/isql b/completions-core/isql.bash similarity index 100% rename from completions/isql rename to completions-core/isql.bash diff --git a/completions/iwconfig b/completions-core/iwconfig.bash similarity index 100% rename from completions/iwconfig rename to completions-core/iwconfig.bash diff --git a/completions/iwlist b/completions-core/iwlist.bash similarity index 100% rename from completions/iwlist rename to completions-core/iwlist.bash diff --git a/completions/iwpriv b/completions-core/iwpriv.bash similarity index 100% rename from completions/iwpriv rename to completions-core/iwpriv.bash diff --git a/completions/iwspy b/completions-core/iwspy.bash similarity index 100% rename from completions/iwspy rename to completions-core/iwspy.bash diff --git a/completions/jar b/completions-core/jar.bash similarity index 100% rename from completions/jar rename to completions-core/jar.bash diff --git a/completions/jarsigner b/completions-core/jarsigner.bash similarity index 100% rename from completions/jarsigner rename to completions-core/jarsigner.bash diff --git a/completions/java b/completions-core/java.bash similarity index 100% rename from completions/java rename to completions-core/java.bash diff --git a/completions/javaws b/completions-core/javaws.bash similarity index 100% rename from completions/javaws rename to completions-core/javaws.bash diff --git a/completions/jpegoptim b/completions-core/jpegoptim.bash similarity index 100% rename from completions/jpegoptim rename to completions-core/jpegoptim.bash diff --git a/completions/jps b/completions-core/jps.bash similarity index 100% rename from completions/jps rename to completions-core/jps.bash diff --git a/completions/jq b/completions-core/jq.bash similarity index 100% rename from completions/jq rename to completions-core/jq.bash diff --git a/completions/jshint b/completions-core/jshint.bash similarity index 100% rename from completions/jshint rename to completions-core/jshint.bash diff --git a/completions/json_xs b/completions-core/json_xs.bash similarity index 100% rename from completions/json_xs rename to completions-core/json_xs.bash diff --git a/completions/jsonschema b/completions-core/jsonschema.bash similarity index 100% rename from completions/jsonschema rename to completions-core/jsonschema.bash diff --git a/completions/k3b b/completions-core/k3b.bash similarity index 100% rename from completions/k3b rename to completions-core/k3b.bash diff --git a/completions/kcov b/completions-core/kcov.bash similarity index 100% rename from completions/kcov rename to completions-core/kcov.bash diff --git a/completions/kill b/completions-core/kill.bash similarity index 100% rename from completions/kill rename to completions-core/kill.bash diff --git a/completions/killall b/completions-core/killall.bash similarity index 100% rename from completions/killall rename to completions-core/killall.bash diff --git a/completions/kldload b/completions-core/kldload.bash similarity index 100% rename from completions/kldload rename to completions-core/kldload.bash diff --git a/completions/kldunload b/completions-core/kldunload.bash similarity index 100% rename from completions/kldunload rename to completions-core/kldunload.bash diff --git a/completions/koji b/completions-core/koji.bash similarity index 100% rename from completions/koji rename to completions-core/koji.bash diff --git a/completions/ktutil b/completions-core/ktutil.bash similarity index 100% rename from completions/ktutil rename to completions-core/ktutil.bash diff --git a/completions/larch b/completions-core/larch.bash similarity index 100% rename from completions/larch rename to completions-core/larch.bash diff --git a/completions/lastlog b/completions-core/lastlog.bash similarity index 100% rename from completions/lastlog rename to completions-core/lastlog.bash diff --git a/completions/ldapsearch b/completions-core/ldapsearch.bash similarity index 100% rename from completions/ldapsearch rename to completions-core/ldapsearch.bash diff --git a/completions/ldapvi b/completions-core/ldapvi.bash similarity index 100% rename from completions/ldapvi rename to completions-core/ldapvi.bash diff --git a/completions/lftp b/completions-core/lftp.bash similarity index 100% rename from completions/lftp rename to completions-core/lftp.bash diff --git a/completions/lftpget b/completions-core/lftpget.bash similarity index 100% rename from completions/lftpget rename to completions-core/lftpget.bash diff --git a/completions/lilo b/completions-core/lilo.bash similarity index 100% rename from completions/lilo rename to completions-core/lilo.bash diff --git a/completions/links b/completions-core/links.bash similarity index 100% rename from completions/links rename to completions-core/links.bash diff --git a/completions/lintian b/completions-core/lintian.bash similarity index 100% rename from completions/lintian rename to completions-core/lintian.bash diff --git a/completions/lisp b/completions-core/lisp.bash similarity index 100% rename from completions/lisp rename to completions-core/lisp.bash diff --git a/completions/list_admins b/completions-core/list_admins.bash similarity index 100% rename from completions/list_admins rename to completions-core/list_admins.bash diff --git a/completions/list_lists b/completions-core/list_lists.bash similarity index 100% rename from completions/list_lists rename to completions-core/list_lists.bash diff --git a/completions/list_members b/completions-core/list_members.bash similarity index 100% rename from completions/list_members rename to completions-core/list_members.bash diff --git a/completions/list_owners b/completions-core/list_owners.bash similarity index 100% rename from completions/list_owners rename to completions-core/list_owners.bash diff --git a/completions/locale-gen b/completions-core/locale-gen.bash similarity index 100% rename from completions/locale-gen rename to completions-core/locale-gen.bash diff --git a/completions/lpq b/completions-core/lpq.bash similarity index 100% rename from completions/lpq rename to completions-core/lpq.bash diff --git a/completions/lpr b/completions-core/lpr.bash similarity index 100% rename from completions/lpr rename to completions-core/lpr.bash diff --git a/completions/lrzip b/completions-core/lrzip.bash similarity index 100% rename from completions/lrzip rename to completions-core/lrzip.bash diff --git a/completions/lsof b/completions-core/lsof.bash similarity index 100% rename from completions/lsof rename to completions-core/lsof.bash diff --git a/completions/lspci b/completions-core/lspci.bash similarity index 100% rename from completions/lspci rename to completions-core/lspci.bash diff --git a/completions/lsscsi b/completions-core/lsscsi.bash similarity index 100% rename from completions/lsscsi rename to completions-core/lsscsi.bash diff --git a/completions/lsusb b/completions-core/lsusb.bash similarity index 100% rename from completions/lsusb rename to completions-core/lsusb.bash diff --git a/completions/lua b/completions-core/lua.bash similarity index 100% rename from completions/lua rename to completions-core/lua.bash diff --git a/completions/luac b/completions-core/luac.bash similarity index 100% rename from completions/luac rename to completions-core/luac.bash diff --git a/completions/luseradd b/completions-core/luseradd.bash similarity index 100% rename from completions/luseradd rename to completions-core/luseradd.bash diff --git a/completions/luserdel b/completions-core/luserdel.bash similarity index 100% rename from completions/luserdel rename to completions-core/luserdel.bash diff --git a/completions/lvm b/completions-core/lvm.bash similarity index 100% rename from completions/lvm rename to completions-core/lvm.bash diff --git a/completions/lz4 b/completions-core/lz4.bash similarity index 100% rename from completions/lz4 rename to completions-core/lz4.bash diff --git a/completions/lzip b/completions-core/lzip.bash similarity index 100% rename from completions/lzip rename to completions-core/lzip.bash diff --git a/completions/lzma b/completions-core/lzma.bash similarity index 100% rename from completions/lzma rename to completions-core/lzma.bash diff --git a/completions/lzop b/completions-core/lzop.bash similarity index 100% rename from completions/lzop rename to completions-core/lzop.bash diff --git a/completions/macof b/completions-core/macof.bash similarity index 100% rename from completions/macof rename to completions-core/macof.bash diff --git a/completions/mailmanctl b/completions-core/mailmanctl.bash similarity index 100% rename from completions/mailmanctl rename to completions-core/mailmanctl.bash diff --git a/completions/make b/completions-core/make.bash similarity index 100% rename from completions/make rename to completions-core/make.bash diff --git a/completions/makepkg b/completions-core/makepkg.bash similarity index 100% rename from completions/makepkg rename to completions-core/makepkg.bash diff --git a/completions/man b/completions-core/man.bash similarity index 100% rename from completions/man rename to completions-core/man.bash diff --git a/completions/mc b/completions-core/mc.bash similarity index 100% rename from completions/mc rename to completions-core/mc.bash diff --git a/completions/mcrypt b/completions-core/mcrypt.bash similarity index 100% rename from completions/mcrypt rename to completions-core/mcrypt.bash diff --git a/completions/mdadm b/completions-core/mdadm.bash similarity index 100% rename from completions/mdadm rename to completions-core/mdadm.bash diff --git a/completions/mdtool b/completions-core/mdtool.bash similarity index 100% rename from completions/mdtool rename to completions-core/mdtool.bash diff --git a/completions/medusa b/completions-core/medusa.bash similarity index 100% rename from completions/medusa rename to completions-core/medusa.bash diff --git a/completions/mfiutil b/completions-core/mfiutil.bash similarity index 100% rename from completions/mfiutil rename to completions-core/mfiutil.bash diff --git a/completions/mii-diag b/completions-core/mii-diag.bash similarity index 100% rename from completions/mii-diag rename to completions-core/mii-diag.bash diff --git a/completions/mii-tool b/completions-core/mii-tool.bash similarity index 100% rename from completions/mii-tool rename to completions-core/mii-tool.bash diff --git a/completions/minicom b/completions-core/minicom.bash similarity index 100% rename from completions/minicom rename to completions-core/minicom.bash diff --git a/completions/mkinitrd b/completions-core/mkinitrd.bash similarity index 100% rename from completions/mkinitrd rename to completions-core/mkinitrd.bash diff --git a/completions/mktemp b/completions-core/mktemp.bash similarity index 100% rename from completions/mktemp rename to completions-core/mktemp.bash diff --git a/completions/mmsitepass b/completions-core/mmsitepass.bash similarity index 100% rename from completions/mmsitepass rename to completions-core/mmsitepass.bash diff --git a/completions/monodevelop b/completions-core/monodevelop.bash similarity index 100% rename from completions/monodevelop rename to completions-core/monodevelop.bash diff --git a/completions/mplayer b/completions-core/mplayer.bash similarity index 100% rename from completions/mplayer rename to completions-core/mplayer.bash diff --git a/completions/mr b/completions-core/mr.bash similarity index 100% rename from completions/mr rename to completions-core/mr.bash diff --git a/completions/msynctool b/completions-core/msynctool.bash similarity index 100% rename from completions/msynctool rename to completions-core/msynctool.bash diff --git a/completions/mtx b/completions-core/mtx.bash similarity index 100% rename from completions/mtx rename to completions-core/mtx.bash diff --git a/completions/munin-node-configure b/completions-core/munin-node-configure.bash similarity index 100% rename from completions/munin-node-configure rename to completions-core/munin-node-configure.bash diff --git a/completions/munin-run b/completions-core/munin-run.bash similarity index 100% rename from completions/munin-run rename to completions-core/munin-run.bash diff --git a/completions/munin-update b/completions-core/munin-update.bash similarity index 100% rename from completions/munin-update rename to completions-core/munin-update.bash diff --git a/completions/munindoc b/completions-core/munindoc.bash similarity index 100% rename from completions/munindoc rename to completions-core/munindoc.bash diff --git a/completions/mussh b/completions-core/mussh.bash similarity index 100% rename from completions/mussh rename to completions-core/mussh.bash diff --git a/completions/mutt b/completions-core/mutt.bash similarity index 100% rename from completions/mutt rename to completions-core/mutt.bash diff --git a/completions/mypy b/completions-core/mypy.bash similarity index 100% rename from completions/mypy rename to completions-core/mypy.bash diff --git a/completions/mysql b/completions-core/mysql.bash similarity index 100% rename from completions/mysql rename to completions-core/mysql.bash diff --git a/completions/mysqladmin b/completions-core/mysqladmin.bash similarity index 100% rename from completions/mysqladmin rename to completions-core/mysqladmin.bash diff --git a/completions/nc b/completions-core/nc.bash similarity index 100% rename from completions/nc rename to completions-core/nc.bash diff --git a/completions/ncftp b/completions-core/ncftp.bash similarity index 100% rename from completions/ncftp rename to completions-core/ncftp.bash diff --git a/completions/nethogs b/completions-core/nethogs.bash similarity index 100% rename from completions/nethogs rename to completions-core/nethogs.bash diff --git a/completions/newlist b/completions-core/newlist.bash similarity index 100% rename from completions/newlist rename to completions-core/newlist.bash diff --git a/completions/newusers b/completions-core/newusers.bash similarity index 100% rename from completions/newusers rename to completions-core/newusers.bash diff --git a/completions/ngrep b/completions-core/ngrep.bash similarity index 100% rename from completions/ngrep rename to completions-core/ngrep.bash diff --git a/completions/nload b/completions-core/nload.bash similarity index 100% rename from completions/nload rename to completions-core/nload.bash diff --git a/completions/nmap b/completions-core/nmap.bash similarity index 100% rename from completions/nmap rename to completions-core/nmap.bash diff --git a/completions/nproc b/completions-core/nproc.bash similarity index 100% rename from completions/nproc rename to completions-core/nproc.bash diff --git a/completions/nslookup b/completions-core/nslookup.bash similarity index 100% rename from completions/nslookup rename to completions-core/nslookup.bash diff --git a/completions/nsupdate b/completions-core/nsupdate.bash similarity index 100% rename from completions/nsupdate rename to completions-core/nsupdate.bash diff --git a/completions/ntpdate b/completions-core/ntpdate.bash similarity index 100% rename from completions/ntpdate rename to completions-core/ntpdate.bash diff --git a/completions/oggdec b/completions-core/oggdec.bash similarity index 100% rename from completions/oggdec rename to completions-core/oggdec.bash diff --git a/completions/openssl b/completions-core/openssl.bash similarity index 100% rename from completions/openssl rename to completions-core/openssl.bash diff --git a/completions/opera b/completions-core/opera.bash similarity index 100% rename from completions/opera rename to completions-core/opera.bash diff --git a/completions/optipng b/completions-core/optipng.bash similarity index 100% rename from completions/optipng rename to completions-core/optipng.bash diff --git a/completions/p4 b/completions-core/p4.bash similarity index 100% rename from completions/p4 rename to completions-core/p4.bash diff --git a/completions/pack200 b/completions-core/pack200.bash similarity index 100% rename from completions/pack200 rename to completions-core/pack200.bash diff --git a/completions/passwd b/completions-core/passwd.bash similarity index 100% rename from completions/passwd rename to completions-core/passwd.bash diff --git a/completions/patch b/completions-core/patch.bash similarity index 100% rename from completions/patch rename to completions-core/patch.bash diff --git a/completions/pdftoppm b/completions-core/pdftoppm.bash similarity index 100% rename from completions/pdftoppm rename to completions-core/pdftoppm.bash diff --git a/completions/pdftotext b/completions-core/pdftotext.bash similarity index 100% rename from completions/pdftotext rename to completions-core/pdftotext.bash diff --git a/completions/perl b/completions-core/perl.bash similarity index 100% rename from completions/perl rename to completions-core/perl.bash diff --git a/completions/perlcritic b/completions-core/perlcritic.bash similarity index 100% rename from completions/perlcritic rename to completions-core/perlcritic.bash diff --git a/completions/perltidy b/completions-core/perltidy.bash similarity index 100% rename from completions/perltidy rename to completions-core/perltidy.bash diff --git a/completions/pgrep b/completions-core/pgrep.bash similarity index 100% rename from completions/pgrep rename to completions-core/pgrep.bash diff --git a/completions/pidof b/completions-core/pidof.bash similarity index 100% rename from completions/pidof rename to completions-core/pidof.bash diff --git a/completions/pine b/completions-core/pine.bash similarity index 100% rename from completions/pine rename to completions-core/pine.bash diff --git a/completions/ping b/completions-core/ping.bash similarity index 100% rename from completions/ping rename to completions-core/ping.bash diff --git a/completions/pkg-config b/completions-core/pkg-config.bash similarity index 100% rename from completions/pkg-config rename to completions-core/pkg-config.bash diff --git a/completions/pkg-get b/completions-core/pkg-get.bash similarity index 100% rename from completions/pkg-get rename to completions-core/pkg-get.bash diff --git a/completions/pkg_delete b/completions-core/pkg_delete.bash similarity index 100% rename from completions/pkg_delete rename to completions-core/pkg_delete.bash diff --git a/completions/pkgadd b/completions-core/pkgadd.bash similarity index 100% rename from completions/pkgadd rename to completions-core/pkgadd.bash diff --git a/completions/pkgrm b/completions-core/pkgrm.bash similarity index 100% rename from completions/pkgrm rename to completions-core/pkgrm.bash diff --git a/completions/pkgtool b/completions-core/pkgtool.bash similarity index 100% rename from completions/pkgtool rename to completions-core/pkgtool.bash diff --git a/completions/pkgutil b/completions-core/pkgutil.bash similarity index 100% rename from completions/pkgutil rename to completions-core/pkgutil.bash diff --git a/completions/plague-client b/completions-core/plague-client.bash similarity index 100% rename from completions/plague-client rename to completions-core/plague-client.bash diff --git a/completions/pm-hibernate b/completions-core/pm-hibernate.bash similarity index 100% rename from completions/pm-hibernate rename to completions-core/pm-hibernate.bash diff --git a/completions/pm-is-supported b/completions-core/pm-is-supported.bash similarity index 100% rename from completions/pm-is-supported rename to completions-core/pm-is-supported.bash diff --git a/completions/pm-powersave b/completions-core/pm-powersave.bash similarity index 100% rename from completions/pm-powersave rename to completions-core/pm-powersave.bash diff --git a/completions/pngfix b/completions-core/pngfix.bash similarity index 100% rename from completions/pngfix rename to completions-core/pngfix.bash diff --git a/completions/portinstall b/completions-core/portinstall.bash similarity index 100% rename from completions/portinstall rename to completions-core/portinstall.bash diff --git a/completions/portsnap b/completions-core/portsnap.bash similarity index 100% rename from completions/portsnap rename to completions-core/portsnap.bash diff --git a/completions/portupgrade b/completions-core/portupgrade.bash similarity index 100% rename from completions/portupgrade rename to completions-core/portupgrade.bash diff --git a/completions/postcat b/completions-core/postcat.bash similarity index 100% rename from completions/postcat rename to completions-core/postcat.bash diff --git a/completions/postconf b/completions-core/postconf.bash similarity index 100% rename from completions/postconf rename to completions-core/postconf.bash diff --git a/completions/postfix b/completions-core/postfix.bash similarity index 100% rename from completions/postfix rename to completions-core/postfix.bash diff --git a/completions/postmap b/completions-core/postmap.bash similarity index 100% rename from completions/postmap rename to completions-core/postmap.bash diff --git a/completions/postsuper b/completions-core/postsuper.bash similarity index 100% rename from completions/postsuper rename to completions-core/postsuper.bash diff --git a/completions/povray b/completions-core/povray.bash similarity index 100% rename from completions/povray rename to completions-core/povray.bash diff --git a/completions/prelink b/completions-core/prelink.bash similarity index 100% rename from completions/prelink rename to completions-core/prelink.bash diff --git a/completions/printenv b/completions-core/printenv.bash similarity index 100% rename from completions/printenv rename to completions-core/printenv.bash diff --git a/completions/protoc b/completions-core/protoc.bash similarity index 100% rename from completions/protoc rename to completions-core/protoc.bash diff --git a/completions/ps b/completions-core/ps.bash similarity index 100% rename from completions/ps rename to completions-core/ps.bash diff --git a/completions/psql b/completions-core/psql.bash similarity index 100% rename from completions/psql rename to completions-core/psql.bash diff --git a/completions/puppet b/completions-core/puppet.bash similarity index 100% rename from completions/puppet rename to completions-core/puppet.bash diff --git a/completions/pv b/completions-core/pv.bash similarity index 100% rename from completions/pv rename to completions-core/pv.bash diff --git a/completions/pwck b/completions-core/pwck.bash similarity index 100% rename from completions/pwck rename to completions-core/pwck.bash diff --git a/completions/pwd b/completions-core/pwd.bash similarity index 100% rename from completions/pwd rename to completions-core/pwd.bash diff --git a/completions/pwdx b/completions-core/pwdx.bash similarity index 100% rename from completions/pwdx rename to completions-core/pwdx.bash diff --git a/completions/pwgen b/completions-core/pwgen.bash similarity index 100% rename from completions/pwgen rename to completions-core/pwgen.bash diff --git a/completions/pycodestyle b/completions-core/pycodestyle.bash similarity index 100% rename from completions/pycodestyle rename to completions-core/pycodestyle.bash diff --git a/completions/pydoc b/completions-core/pydoc.bash similarity index 100% rename from completions/pydoc rename to completions-core/pydoc.bash diff --git a/completions/pydocstyle b/completions-core/pydocstyle.bash similarity index 100% rename from completions/pydocstyle rename to completions-core/pydocstyle.bash diff --git a/completions/pyflakes b/completions-core/pyflakes.bash similarity index 100% rename from completions/pyflakes rename to completions-core/pyflakes.bash diff --git a/completions/pylint b/completions-core/pylint.bash similarity index 100% rename from completions/pylint rename to completions-core/pylint.bash diff --git a/completions/pytest b/completions-core/pytest.bash similarity index 100% rename from completions/pytest rename to completions-core/pytest.bash diff --git a/completions/python b/completions-core/python.bash similarity index 100% rename from completions/python rename to completions-core/python.bash diff --git a/completions/pyvenv b/completions-core/pyvenv.bash similarity index 100% rename from completions/pyvenv rename to completions-core/pyvenv.bash diff --git a/completions/qdbus b/completions-core/qdbus.bash similarity index 100% rename from completions/qdbus rename to completions-core/qdbus.bash diff --git a/completions/qemu b/completions-core/qemu.bash similarity index 100% rename from completions/qemu rename to completions-core/qemu.bash diff --git a/completions/qrunner b/completions-core/qrunner.bash similarity index 100% rename from completions/qrunner rename to completions-core/qrunner.bash diff --git a/completions/querybts b/completions-core/querybts.bash similarity index 100% rename from completions/querybts rename to completions-core/querybts.bash diff --git a/completions/quota b/completions-core/quota.bash similarity index 100% rename from completions/quota rename to completions-core/quota.bash diff --git a/completions/radvdump b/completions-core/radvdump.bash similarity index 100% rename from completions/radvdump rename to completions-core/radvdump.bash diff --git a/completions/rcs b/completions-core/rcs.bash similarity index 100% rename from completions/rcs rename to completions-core/rcs.bash diff --git a/completions/rdesktop b/completions-core/rdesktop.bash similarity index 100% rename from completions/rdesktop rename to completions-core/rdesktop.bash diff --git a/completions/remove_members b/completions-core/remove_members.bash similarity index 100% rename from completions/remove_members rename to completions-core/remove_members.bash diff --git a/completions/removepkg b/completions-core/removepkg.bash similarity index 100% rename from completions/removepkg rename to completions-core/removepkg.bash diff --git a/completions/reportbug b/completions-core/reportbug.bash similarity index 100% rename from completions/reportbug rename to completions-core/reportbug.bash diff --git a/completions/resolvconf b/completions-core/resolvconf.bash similarity index 100% rename from completions/resolvconf rename to completions-core/resolvconf.bash diff --git a/completions/ri b/completions-core/ri.bash similarity index 100% rename from completions/ri rename to completions-core/ri.bash diff --git a/completions/rmlist b/completions-core/rmlist.bash similarity index 100% rename from completions/rmlist rename to completions-core/rmlist.bash diff --git a/completions/route b/completions-core/route.bash similarity index 100% rename from completions/route rename to completions-core/route.bash diff --git a/completions/rpcdebug b/completions-core/rpcdebug.bash similarity index 100% rename from completions/rpcdebug rename to completions-core/rpcdebug.bash diff --git a/completions/rpm b/completions-core/rpm.bash similarity index 100% rename from completions/rpm rename to completions-core/rpm.bash diff --git a/completions/rpm2tgz b/completions-core/rpm2tgz.bash similarity index 100% rename from completions/rpm2tgz rename to completions-core/rpm2tgz.bash diff --git a/completions/rpmcheck b/completions-core/rpmcheck.bash similarity index 100% rename from completions/rpmcheck rename to completions-core/rpmcheck.bash diff --git a/completions/rrdtool b/completions-core/rrdtool.bash similarity index 100% rename from completions/rrdtool rename to completions-core/rrdtool.bash diff --git a/completions/rsync b/completions-core/rsync.bash similarity index 100% rename from completions/rsync rename to completions-core/rsync.bash diff --git a/completions/sbcl b/completions-core/sbcl.bash similarity index 100% rename from completions/sbcl rename to completions-core/sbcl.bash diff --git a/completions/sbopkg b/completions-core/sbopkg.bash similarity index 100% rename from completions/sbopkg rename to completions-core/sbopkg.bash diff --git a/completions/screen b/completions-core/screen.bash similarity index 100% rename from completions/screen rename to completions-core/screen.bash diff --git a/completions/scrub b/completions-core/scrub.bash similarity index 100% rename from completions/scrub rename to completions-core/scrub.bash diff --git a/completions/set b/completions-core/set.bash similarity index 100% rename from completions/set rename to completions-core/set.bash diff --git a/completions/sh b/completions-core/sh.bash similarity index 100% rename from completions/sh rename to completions-core/sh.bash diff --git a/completions/sha256sum b/completions-core/sha256sum.bash similarity index 100% rename from completions/sha256sum rename to completions-core/sha256sum.bash diff --git a/completions/shellcheck b/completions-core/shellcheck.bash similarity index 100% rename from completions/shellcheck rename to completions-core/shellcheck.bash diff --git a/completions/sitecopy b/completions-core/sitecopy.bash similarity index 100% rename from completions/sitecopy rename to completions-core/sitecopy.bash diff --git a/completions/slabtop b/completions-core/slabtop.bash similarity index 100% rename from completions/slabtop rename to completions-core/slabtop.bash diff --git a/completions/slapt-get b/completions-core/slapt-get.bash similarity index 100% rename from completions/slapt-get rename to completions-core/slapt-get.bash diff --git a/completions/slapt-src b/completions-core/slapt-src.bash similarity index 100% rename from completions/slapt-src rename to completions-core/slapt-src.bash diff --git a/completions/smartctl b/completions-core/smartctl.bash similarity index 100% rename from completions/smartctl rename to completions-core/smartctl.bash diff --git a/completions/smbclient b/completions-core/smbclient.bash similarity index 100% rename from completions/smbclient rename to completions-core/smbclient.bash diff --git a/completions/snownews b/completions-core/snownews.bash similarity index 100% rename from completions/snownews rename to completions-core/snownews.bash diff --git a/completions/sqlite3 b/completions-core/sqlite3.bash similarity index 100% rename from completions/sqlite3 rename to completions-core/sqlite3.bash diff --git a/completions/ss b/completions-core/ss.bash similarity index 100% rename from completions/ss rename to completions-core/ss.bash diff --git a/completions/ssh-add b/completions-core/ssh-add.bash similarity index 100% rename from completions/ssh-add rename to completions-core/ssh-add.bash diff --git a/completions/ssh-copy-id b/completions-core/ssh-copy-id.bash similarity index 100% rename from completions/ssh-copy-id rename to completions-core/ssh-copy-id.bash diff --git a/completions/ssh-keygen b/completions-core/ssh-keygen.bash similarity index 100% rename from completions/ssh-keygen rename to completions-core/ssh-keygen.bash diff --git a/completions/ssh-keyscan b/completions-core/ssh-keyscan.bash similarity index 100% rename from completions/ssh-keyscan rename to completions-core/ssh-keyscan.bash diff --git a/completions/ssh b/completions-core/ssh.bash similarity index 100% rename from completions/ssh rename to completions-core/ssh.bash diff --git a/completions/sshfs b/completions-core/sshfs.bash similarity index 100% rename from completions/sshfs rename to completions-core/sshfs.bash diff --git a/completions/sshmitm b/completions-core/sshmitm.bash similarity index 100% rename from completions/sshmitm rename to completions-core/sshmitm.bash diff --git a/completions/sshow b/completions-core/sshow.bash similarity index 100% rename from completions/sshow rename to completions-core/sshow.bash diff --git a/completions/strace b/completions-core/strace.bash similarity index 100% rename from completions/strace rename to completions-core/strace.bash diff --git a/completions/strings b/completions-core/strings.bash similarity index 100% rename from completions/strings rename to completions-core/strings.bash diff --git a/completions/sudo b/completions-core/sudo.bash similarity index 100% rename from completions/sudo rename to completions-core/sudo.bash diff --git a/completions/svcadm b/completions-core/svcadm.bash similarity index 100% rename from completions/svcadm rename to completions-core/svcadm.bash diff --git a/completions/svk b/completions-core/svk.bash similarity index 100% rename from completions/svk rename to completions-core/svk.bash diff --git a/completions/sync_members b/completions-core/sync_members.bash similarity index 100% rename from completions/sync_members rename to completions-core/sync_members.bash diff --git a/completions/synclient b/completions-core/synclient.bash similarity index 100% rename from completions/synclient rename to completions-core/synclient.bash diff --git a/completions/sysbench b/completions-core/sysbench.bash similarity index 100% rename from completions/sysbench rename to completions-core/sysbench.bash diff --git a/completions/sysctl b/completions-core/sysctl.bash similarity index 100% rename from completions/sysctl rename to completions-core/sysctl.bash diff --git a/completions/tar b/completions-core/tar.bash similarity index 100% rename from completions/tar rename to completions-core/tar.bash diff --git a/completions/tcpdump b/completions-core/tcpdump.bash similarity index 100% rename from completions/tcpdump rename to completions-core/tcpdump.bash diff --git a/completions/tcpkill b/completions-core/tcpkill.bash similarity index 100% rename from completions/tcpkill rename to completions-core/tcpkill.bash diff --git a/completions/tcpnice b/completions-core/tcpnice.bash similarity index 100% rename from completions/tcpnice rename to completions-core/tcpnice.bash diff --git a/completions/timeout b/completions-core/timeout.bash similarity index 100% rename from completions/timeout rename to completions-core/timeout.bash diff --git a/completions/tipc b/completions-core/tipc.bash similarity index 100% rename from completions/tipc rename to completions-core/tipc.bash diff --git a/completions/tmux b/completions-core/tmux.bash similarity index 100% rename from completions/tmux rename to completions-core/tmux.bash diff --git a/completions/tox b/completions-core/tox.bash similarity index 100% rename from completions/tox rename to completions-core/tox.bash diff --git a/completions/tracepath b/completions-core/tracepath.bash similarity index 100% rename from completions/tracepath rename to completions-core/tracepath.bash diff --git a/completions/tree b/completions-core/tree.bash similarity index 100% rename from completions/tree rename to completions-core/tree.bash diff --git a/completions/truncate b/completions-core/truncate.bash similarity index 100% rename from completions/truncate rename to completions-core/truncate.bash diff --git a/completions/tshark b/completions-core/tshark.bash similarity index 100% rename from completions/tshark rename to completions-core/tshark.bash diff --git a/completions/tsig-keygen b/completions-core/tsig-keygen.bash similarity index 100% rename from completions/tsig-keygen rename to completions-core/tsig-keygen.bash diff --git a/completions/tune2fs b/completions-core/tune2fs.bash similarity index 100% rename from completions/tune2fs rename to completions-core/tune2fs.bash diff --git a/completions/ulimit b/completions-core/ulimit.bash similarity index 100% rename from completions/ulimit rename to completions-core/ulimit.bash diff --git a/completions/unace b/completions-core/unace.bash similarity index 100% rename from completions/unace rename to completions-core/unace.bash diff --git a/completions/unpack200 b/completions-core/unpack200.bash similarity index 100% rename from completions/unpack200 rename to completions-core/unpack200.bash diff --git a/completions/unrar b/completions-core/unrar.bash similarity index 100% rename from completions/unrar rename to completions-core/unrar.bash diff --git a/completions/unshunt b/completions-core/unshunt.bash similarity index 100% rename from completions/unshunt rename to completions-core/unshunt.bash diff --git a/completions/update-alternatives b/completions-core/update-alternatives.bash similarity index 100% rename from completions/update-alternatives rename to completions-core/update-alternatives.bash diff --git a/completions/update-rc.d b/completions-core/update-rc.d.bash similarity index 100% rename from completions/update-rc.d rename to completions-core/update-rc.d.bash diff --git a/completions/upgradepkg b/completions-core/upgradepkg.bash similarity index 100% rename from completions/upgradepkg rename to completions-core/upgradepkg.bash diff --git a/completions/urlsnarf b/completions-core/urlsnarf.bash similarity index 100% rename from completions/urlsnarf rename to completions-core/urlsnarf.bash diff --git a/completions/uscan b/completions-core/uscan.bash similarity index 100% rename from completions/uscan rename to completions-core/uscan.bash diff --git a/completions/useradd b/completions-core/useradd.bash similarity index 100% rename from completions/useradd rename to completions-core/useradd.bash diff --git a/completions/userdel b/completions-core/userdel.bash similarity index 100% rename from completions/userdel rename to completions-core/userdel.bash diff --git a/completions/usermod b/completions-core/usermod.bash similarity index 100% rename from completions/usermod rename to completions-core/usermod.bash diff --git a/completions/valgrind b/completions-core/valgrind.bash similarity index 100% rename from completions/valgrind rename to completions-core/valgrind.bash diff --git a/completions/vipw b/completions-core/vipw.bash similarity index 100% rename from completions/vipw rename to completions-core/vipw.bash diff --git a/completions/vmstat b/completions-core/vmstat.bash similarity index 100% rename from completions/vmstat rename to completions-core/vmstat.bash diff --git a/completions/vncviewer b/completions-core/vncviewer.bash similarity index 100% rename from completions/vncviewer rename to completions-core/vncviewer.bash diff --git a/completions/vpnc b/completions-core/vpnc.bash similarity index 100% rename from completions/vpnc rename to completions-core/vpnc.bash diff --git a/completions/watch b/completions-core/watch.bash similarity index 100% rename from completions/watch rename to completions-core/watch.bash diff --git a/completions/webmitm b/completions-core/webmitm.bash similarity index 100% rename from completions/webmitm rename to completions-core/webmitm.bash diff --git a/completions/wget b/completions-core/wget.bash similarity index 100% rename from completions/wget rename to completions-core/wget.bash diff --git a/completions/wine b/completions-core/wine.bash similarity index 100% rename from completions/wine rename to completions-core/wine.bash diff --git a/completions/withlist b/completions-core/withlist.bash similarity index 100% rename from completions/withlist rename to completions-core/withlist.bash diff --git a/completions/wodim b/completions-core/wodim.bash similarity index 100% rename from completions/wodim rename to completions-core/wodim.bash diff --git a/completions/wol b/completions-core/wol.bash similarity index 100% rename from completions/wol rename to completions-core/wol.bash diff --git a/completions/wsimport b/completions-core/wsimport.bash similarity index 100% rename from completions/wsimport rename to completions-core/wsimport.bash diff --git a/completions/wtf b/completions-core/wtf.bash similarity index 100% rename from completions/wtf rename to completions-core/wtf.bash diff --git a/completions/wvdial b/completions-core/wvdial.bash similarity index 100% rename from completions/wvdial rename to completions-core/wvdial.bash diff --git a/completions/xdg-mime b/completions-core/xdg-mime.bash similarity index 100% rename from completions/xdg-mime rename to completions-core/xdg-mime.bash diff --git a/completions/xdg-settings b/completions-core/xdg-settings.bash similarity index 100% rename from completions/xdg-settings rename to completions-core/xdg-settings.bash diff --git a/completions/xev b/completions-core/xev.bash similarity index 100% rename from completions/xev rename to completions-core/xev.bash diff --git a/completions/xfreerdp b/completions-core/xfreerdp.bash similarity index 100% rename from completions/xfreerdp rename to completions-core/xfreerdp.bash diff --git a/completions/xgamma b/completions-core/xgamma.bash similarity index 100% rename from completions/xgamma rename to completions-core/xgamma.bash diff --git a/completions/xhost b/completions-core/xhost.bash similarity index 100% rename from completions/xhost rename to completions-core/xhost.bash diff --git a/completions/xmllint b/completions-core/xmllint.bash similarity index 100% rename from completions/xmllint rename to completions-core/xmllint.bash diff --git a/completions/xmlwf b/completions-core/xmlwf.bash similarity index 100% rename from completions/xmlwf rename to completions-core/xmlwf.bash diff --git a/completions/xmms b/completions-core/xmms.bash similarity index 100% rename from completions/xmms rename to completions-core/xmms.bash diff --git a/completions/xmodmap b/completions-core/xmodmap.bash similarity index 100% rename from completions/xmodmap rename to completions-core/xmodmap.bash diff --git a/completions/xrandr b/completions-core/xrandr.bash similarity index 100% rename from completions/xrandr rename to completions-core/xrandr.bash diff --git a/completions/xrdb b/completions-core/xrdb.bash similarity index 100% rename from completions/xrdb rename to completions-core/xrdb.bash diff --git a/completions/xsltproc b/completions-core/xsltproc.bash similarity index 100% rename from completions/xsltproc rename to completions-core/xsltproc.bash diff --git a/completions/xvfb-run b/completions-core/xvfb-run.bash similarity index 100% rename from completions/xvfb-run rename to completions-core/xvfb-run.bash diff --git a/completions/xxd b/completions-core/xxd.bash similarity index 100% rename from completions/xxd rename to completions-core/xxd.bash diff --git a/completions/xz b/completions-core/xz.bash similarity index 100% rename from completions/xz rename to completions-core/xz.bash diff --git a/completions/xzdec b/completions-core/xzdec.bash similarity index 100% rename from completions/xzdec rename to completions-core/xzdec.bash diff --git a/completions/ypmatch b/completions-core/ypmatch.bash similarity index 100% rename from completions/ypmatch rename to completions-core/ypmatch.bash diff --git a/completions/yum-arch b/completions-core/yum-arch.bash similarity index 100% rename from completions/yum-arch rename to completions-core/yum-arch.bash diff --git a/completions/zopfli b/completions-core/zopfli.bash similarity index 100% rename from completions/zopfli rename to completions-core/zopfli.bash diff --git a/completions/zopflipng b/completions-core/zopflipng.bash similarity index 100% rename from completions/zopflipng rename to completions-core/zopflipng.bash diff --git a/completions/_adb b/completions-fallback/adb.bash similarity index 100% rename from completions/_adb rename to completions-fallback/adb.bash diff --git a/completions/_argc b/completions-fallback/argc.bash similarity index 100% rename from completions/_argc rename to completions-fallback/argc.bash diff --git a/completions/_bombadil b/completions-fallback/bombadil.bash similarity index 100% rename from completions/_bombadil rename to completions-fallback/bombadil.bash diff --git a/completions/_cal b/completions-fallback/cal.bash similarity index 100% rename from completions/_cal rename to completions-fallback/cal.bash diff --git a/completions/_cargo b/completions-fallback/cargo.bash similarity index 100% rename from completions/_cargo rename to completions-fallback/cargo.bash diff --git a/completions/_chfn b/completions-fallback/chfn.bash similarity index 100% rename from completions/_chfn rename to completions-fallback/chfn.bash diff --git a/completions/_chsh b/completions-fallback/chsh.bash similarity index 100% rename from completions/_chsh rename to completions-fallback/chsh.bash diff --git a/completions/_coder b/completions-fallback/coder.bash similarity index 100% rename from completions/_coder rename to completions-fallback/coder.bash diff --git a/completions/_delta b/completions-fallback/delta.bash similarity index 100% rename from completions/_delta rename to completions-fallback/delta.bash diff --git a/completions/_dmesg b/completions-fallback/dmesg.bash similarity index 100% rename from completions/_dmesg rename to completions-fallback/dmesg.bash diff --git a/completions/_eject b/completions-fallback/eject.bash similarity index 100% rename from completions/_eject rename to completions-fallback/eject.bash diff --git a/completions/_flamegraph b/completions-fallback/flamegraph.bash similarity index 100% rename from completions/_flamegraph rename to completions-fallback/flamegraph.bash diff --git a/completions/_gaiacli b/completions-fallback/gaiacli.bash similarity index 100% rename from completions/_gaiacli rename to completions-fallback/gaiacli.bash diff --git a/completions/_gh b/completions-fallback/gh.bash similarity index 100% rename from completions/_gh rename to completions-fallback/gh.bash diff --git a/completions/_golangci-lint b/completions-fallback/golangci-lint.bash similarity index 100% rename from completions/_golangci-lint rename to completions-fallback/golangci-lint.bash diff --git a/completions/_gsctl b/completions-fallback/gsctl.bash similarity index 100% rename from completions/_gsctl rename to completions-fallback/gsctl.bash diff --git a/completions/_hexdump b/completions-fallback/hexdump.bash similarity index 100% rename from completions/_hexdump rename to completions-fallback/hexdump.bash diff --git a/completions/_hwclock b/completions-fallback/hwclock.bash similarity index 100% rename from completions/_hwclock rename to completions-fallback/hwclock.bash diff --git a/completions/_insmod b/completions-fallback/insmod.bash similarity index 100% rename from completions/_insmod rename to completions-fallback/insmod.bash diff --git a/completions/_ionice b/completions-fallback/ionice.bash similarity index 100% rename from completions/_ionice rename to completions-fallback/ionice.bash diff --git a/completions/_jj b/completions-fallback/jj.bash similarity index 100% rename from completions/_jj rename to completions-fallback/jj.bash diff --git a/completions/_jungle b/completions-fallback/jungle.bash similarity index 100% rename from completions/_jungle rename to completions-fallback/jungle.bash diff --git a/completions/_keyring b/completions-fallback/keyring.bash similarity index 100% rename from completions/_keyring rename to completions-fallback/keyring.bash diff --git a/completions/_kontena b/completions-fallback/kontena.bash similarity index 100% rename from completions/_kontena rename to completions-fallback/kontena.bash diff --git a/completions/_look b/completions-fallback/look.bash similarity index 100% rename from completions/_look rename to completions-fallback/look.bash diff --git a/completions/_mdbook b/completions-fallback/mdbook.bash similarity index 100% rename from completions/_mdbook rename to completions-fallback/mdbook.bash diff --git a/completions/_mock b/completions-fallback/mock.bash similarity index 100% rename from completions/_mock rename to completions-fallback/mock.bash diff --git a/completions/_modinfo b/completions-fallback/modinfo.bash similarity index 100% rename from completions/_modinfo rename to completions-fallback/modinfo.bash diff --git a/completions/_modprobe b/completions-fallback/modprobe.bash similarity index 100% rename from completions/_modprobe rename to completions-fallback/modprobe.bash diff --git a/completions/_modules b/completions-fallback/modules.bash similarity index 100% rename from completions/_modules rename to completions-fallback/modules.bash diff --git a/completions/_mount b/completions-fallback/mount.bash similarity index 100% rename from completions/_mount rename to completions-fallback/mount.bash diff --git a/completions/_mount.linux b/completions-fallback/mount.linux.bash similarity index 100% rename from completions/_mount.linux rename to completions-fallback/mount.linux.bash diff --git a/completions/_mtr b/completions-fallback/mtr.bash similarity index 100% rename from completions/_mtr rename to completions-fallback/mtr.bash diff --git a/completions/_newgrp b/completions-fallback/newgrp.bash similarity index 100% rename from completions/_newgrp rename to completions-fallback/newgrp.bash diff --git a/completions/_nmcli b/completions-fallback/nmcli.bash similarity index 100% rename from completions/_nmcli rename to completions-fallback/nmcli.bash diff --git a/completions/_nox b/completions-fallback/nox.bash similarity index 100% rename from completions/_nox rename to completions-fallback/nox.bash diff --git a/completions/_nvm b/completions-fallback/nvm.bash similarity index 100% rename from completions/_nvm rename to completions-fallback/nvm.bash diff --git a/completions/_pip b/completions-fallback/pip.bash similarity index 100% rename from completions/_pip rename to completions-fallback/pip.bash diff --git a/completions/_pipenv b/completions-fallback/pipenv.bash similarity index 100% rename from completions/_pipenv rename to completions-fallback/pipenv.bash diff --git a/completions/_renice b/completions-fallback/renice.bash similarity index 100% rename from completions/_renice rename to completions-fallback/renice.bash diff --git a/completions/_repomanage b/completions-fallback/repomanage.bash similarity index 100% rename from completions/_repomanage rename to completions-fallback/repomanage.bash diff --git a/completions/_reptyr b/completions-fallback/reptyr.bash similarity index 100% rename from completions/_reptyr rename to completions-fallback/reptyr.bash diff --git a/completions/_rfkill b/completions-fallback/rfkill.bash similarity index 100% rename from completions/_rfkill rename to completions-fallback/rfkill.bash diff --git a/completions/_rg b/completions-fallback/rg.bash similarity index 100% rename from completions/_rg rename to completions-fallback/rg.bash diff --git a/completions/_rmmod b/completions-fallback/rmmod.bash similarity index 100% rename from completions/_rmmod rename to completions-fallback/rmmod.bash diff --git a/completions/_rtcwake b/completions-fallback/rtcwake.bash similarity index 100% rename from completions/_rtcwake rename to completions-fallback/rtcwake.bash diff --git a/completions/_ruff b/completions-fallback/ruff.bash similarity index 100% rename from completions/_ruff rename to completions-fallback/ruff.bash diff --git a/completions/_runuser b/completions-fallback/runuser.bash similarity index 100% rename from completions/_runuser rename to completions-fallback/runuser.bash diff --git a/completions/_rustup b/completions-fallback/rustup.bash similarity index 100% rename from completions/_rustup rename to completions-fallback/rustup.bash diff --git a/completions/_secret-tool b/completions-fallback/secret-tool.bash similarity index 100% rename from completions/_secret-tool rename to completions-fallback/secret-tool.bash diff --git a/completions/_shtab b/completions-fallback/shtab.bash similarity index 100% rename from completions/_shtab rename to completions-fallback/shtab.bash diff --git a/completions/_slackpkg b/completions-fallback/slackpkg.bash similarity index 100% rename from completions/_slackpkg rename to completions-fallback/slackpkg.bash diff --git a/completions/_sops b/completions-fallback/sops.bash similarity index 100% rename from completions/_sops rename to completions-fallback/sops.bash diff --git a/completions/_stern b/completions-fallback/stern.bash similarity index 100% rename from completions/_stern rename to completions-fallback/stern.bash diff --git a/completions/_stripe b/completions-fallback/stripe.bash similarity index 100% rename from completions/_stripe rename to completions-fallback/stripe.bash diff --git a/completions/_su b/completions-fallback/su.bash similarity index 100% rename from completions/_su rename to completions-fallback/su.bash diff --git a/completions/_svn b/completions-fallback/svn.bash similarity index 100% rename from completions/_svn rename to completions-fallback/svn.bash diff --git a/completions/_svnadmin b/completions-fallback/svnadmin.bash similarity index 100% rename from completions/_svnadmin rename to completions-fallback/svnadmin.bash diff --git a/completions/_svnlook b/completions-fallback/svnlook.bash similarity index 100% rename from completions/_svnlook rename to completions-fallback/svnlook.bash diff --git a/completions/_task b/completions-fallback/task.bash similarity index 100% rename from completions/_task rename to completions-fallback/task.bash diff --git a/completions/_tokio-console b/completions-fallback/tokio-console.bash similarity index 100% rename from completions/_tokio-console rename to completions-fallback/tokio-console.bash diff --git a/completions/_udevadm b/completions-fallback/udevadm.bash similarity index 100% rename from completions/_udevadm rename to completions-fallback/udevadm.bash diff --git a/completions/_umount b/completions-fallback/umount.bash similarity index 100% rename from completions/_umount rename to completions-fallback/umount.bash diff --git a/completions/_umount.linux b/completions-fallback/umount.linux.bash similarity index 100% rename from completions/_umount.linux rename to completions-fallback/umount.linux.bash diff --git a/completions/_uvx b/completions-fallback/uvx.bash similarity index 100% rename from completions/_uvx rename to completions-fallback/uvx.bash diff --git a/completions/_vault b/completions-fallback/vault.bash similarity index 100% rename from completions/_vault rename to completions-fallback/vault.bash diff --git a/completions/_wasmer b/completions-fallback/wasmer.bash similarity index 100% rename from completions/_wasmer rename to completions-fallback/wasmer.bash diff --git a/completions/_write b/completions-fallback/write.bash similarity index 100% rename from completions/_write rename to completions-fallback/write.bash diff --git a/completions/_xm b/completions-fallback/xm.bash similarity index 100% rename from completions/_xm rename to completions-fallback/xm.bash diff --git a/completions/_yq b/completions-fallback/yq.bash similarity index 100% rename from completions/_yq rename to completions-fallback/yq.bash diff --git a/completions/_yum b/completions-fallback/yum.bash similarity index 100% rename from completions/_yum rename to completions-fallback/yum.bash diff --git a/helpers/Makefile.am b/helpers-core/Makefile.am similarity index 100% rename from helpers/Makefile.am rename to helpers-core/Makefile.am diff --git a/helpers/make-extract-targets.awk b/helpers-core/make-extract-targets.awk similarity index 100% rename from helpers/make-extract-targets.awk rename to helpers-core/make-extract-targets.awk diff --git a/helpers/perl b/helpers-core/perl similarity index 100% rename from helpers/perl rename to helpers-core/perl diff --git a/helpers/python b/helpers-core/python similarity index 100% rename from helpers/python rename to helpers-core/python diff --git a/test/fallback/completions/adb b/test/fallback/completions/adb deleted file mode 120000 index 66ed7eb1f17..00000000000 --- a/test/fallback/completions/adb +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_adb \ No newline at end of file diff --git a/test/fallback/completions/adb.bash b/test/fallback/completions/adb.bash new file mode 120000 index 00000000000..91c4f50a96b --- /dev/null +++ b/test/fallback/completions/adb.bash @@ -0,0 +1 @@ +../../../completions-fallback/adb.bash \ No newline at end of file diff --git a/test/fallback/completions/argc b/test/fallback/completions/argc deleted file mode 120000 index 51a57de09c3..00000000000 --- a/test/fallback/completions/argc +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_argc \ No newline at end of file diff --git a/test/fallback/completions/argc.bash b/test/fallback/completions/argc.bash new file mode 120000 index 00000000000..7297fc8e94d --- /dev/null +++ b/test/fallback/completions/argc.bash @@ -0,0 +1 @@ +../../../completions-fallback/argc.bash \ No newline at end of file diff --git a/test/fallback/completions/bombadil b/test/fallback/completions/bombadil deleted file mode 120000 index ef91ae81cb2..00000000000 --- a/test/fallback/completions/bombadil +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_bombadil \ No newline at end of file diff --git a/test/fallback/completions/bombadil.bash b/test/fallback/completions/bombadil.bash new file mode 120000 index 00000000000..6860b0fedff --- /dev/null +++ b/test/fallback/completions/bombadil.bash @@ -0,0 +1 @@ +../../../completions-fallback/bombadil.bash \ No newline at end of file diff --git a/test/fallback/completions/cal b/test/fallback/completions/cal deleted file mode 120000 index 733c95d0637..00000000000 --- a/test/fallback/completions/cal +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_cal \ No newline at end of file diff --git a/test/fallback/completions/cal.bash b/test/fallback/completions/cal.bash new file mode 120000 index 00000000000..748ccd63f30 --- /dev/null +++ b/test/fallback/completions/cal.bash @@ -0,0 +1 @@ +../../../completions-fallback/cal.bash \ No newline at end of file diff --git a/test/fallback/completions/cargo b/test/fallback/completions/cargo deleted file mode 120000 index cdc7c30243d..00000000000 --- a/test/fallback/completions/cargo +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_cargo \ No newline at end of file diff --git a/test/fallback/completions/cargo.bash b/test/fallback/completions/cargo.bash new file mode 120000 index 00000000000..f7ca0928bd7 --- /dev/null +++ b/test/fallback/completions/cargo.bash @@ -0,0 +1 @@ +../../../completions-fallback/cargo.bash \ No newline at end of file diff --git a/test/fallback/completions/chfn b/test/fallback/completions/chfn deleted file mode 120000 index dc7726da4a8..00000000000 --- a/test/fallback/completions/chfn +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_chfn \ No newline at end of file diff --git a/test/fallback/completions/chfn.bash b/test/fallback/completions/chfn.bash new file mode 120000 index 00000000000..1a2db2eb223 --- /dev/null +++ b/test/fallback/completions/chfn.bash @@ -0,0 +1 @@ +../../../completions-fallback/chfn.bash \ No newline at end of file diff --git a/test/fallback/completions/chsh b/test/fallback/completions/chsh deleted file mode 120000 index e99eb8187d3..00000000000 --- a/test/fallback/completions/chsh +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_chsh \ No newline at end of file diff --git a/test/fallback/completions/chsh.bash b/test/fallback/completions/chsh.bash new file mode 120000 index 00000000000..7f95eb50078 --- /dev/null +++ b/test/fallback/completions/chsh.bash @@ -0,0 +1 @@ +../../../completions-fallback/chsh.bash \ No newline at end of file diff --git a/test/fallback/completions/coder b/test/fallback/completions/coder deleted file mode 120000 index 95ad2e72160..00000000000 --- a/test/fallback/completions/coder +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_coder \ No newline at end of file diff --git a/test/fallback/completions/coder.bash b/test/fallback/completions/coder.bash new file mode 120000 index 00000000000..10bb90e2364 --- /dev/null +++ b/test/fallback/completions/coder.bash @@ -0,0 +1 @@ +../../../completions-fallback/coder.bash \ No newline at end of file diff --git a/test/fallback/completions/delta b/test/fallback/completions/delta deleted file mode 120000 index 008a53eae21..00000000000 --- a/test/fallback/completions/delta +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_delta \ No newline at end of file diff --git a/test/fallback/completions/delta.bash b/test/fallback/completions/delta.bash new file mode 120000 index 00000000000..ad46068defd --- /dev/null +++ b/test/fallback/completions/delta.bash @@ -0,0 +1 @@ +../../../completions-fallback/delta.bash \ No newline at end of file diff --git a/test/fallback/completions/dmesg b/test/fallback/completions/dmesg deleted file mode 120000 index b41aa729e3d..00000000000 --- a/test/fallback/completions/dmesg +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_dmesg \ No newline at end of file diff --git a/test/fallback/completions/dmesg.bash b/test/fallback/completions/dmesg.bash new file mode 120000 index 00000000000..58174812add --- /dev/null +++ b/test/fallback/completions/dmesg.bash @@ -0,0 +1 @@ +../../../completions-fallback/dmesg.bash \ No newline at end of file diff --git a/test/fallback/completions/eject b/test/fallback/completions/eject deleted file mode 120000 index 19926454f03..00000000000 --- a/test/fallback/completions/eject +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_eject \ No newline at end of file diff --git a/test/fallback/completions/eject.bash b/test/fallback/completions/eject.bash new file mode 120000 index 00000000000..9c7efeaa18e --- /dev/null +++ b/test/fallback/completions/eject.bash @@ -0,0 +1 @@ +../../../completions-fallback/eject.bash \ No newline at end of file diff --git a/test/fallback/completions/flamegraph b/test/fallback/completions/flamegraph deleted file mode 120000 index 3b0632749f6..00000000000 --- a/test/fallback/completions/flamegraph +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_flamegraph \ No newline at end of file diff --git a/test/fallback/completions/flamegraph.bash b/test/fallback/completions/flamegraph.bash new file mode 120000 index 00000000000..bfedd106ce5 --- /dev/null +++ b/test/fallback/completions/flamegraph.bash @@ -0,0 +1 @@ +../../../completions-fallback/flamegraph.bash \ No newline at end of file diff --git a/test/fallback/completions/gaiacli b/test/fallback/completions/gaiacli deleted file mode 120000 index 4b135354c74..00000000000 --- a/test/fallback/completions/gaiacli +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_gaiacli \ No newline at end of file diff --git a/test/fallback/completions/gaiacli.bash b/test/fallback/completions/gaiacli.bash new file mode 120000 index 00000000000..c13f646abe8 --- /dev/null +++ b/test/fallback/completions/gaiacli.bash @@ -0,0 +1 @@ +../../../completions-fallback/gaiacli.bash \ No newline at end of file diff --git a/test/fallback/completions/gh b/test/fallback/completions/gh deleted file mode 120000 index 823628f588d..00000000000 --- a/test/fallback/completions/gh +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_gh \ No newline at end of file diff --git a/test/fallback/completions/gh.bash b/test/fallback/completions/gh.bash new file mode 120000 index 00000000000..7b4cee2090f --- /dev/null +++ b/test/fallback/completions/gh.bash @@ -0,0 +1 @@ +../../../completions-fallback/gh.bash \ No newline at end of file diff --git a/test/fallback/completions/golangci-lint b/test/fallback/completions/golangci-lint deleted file mode 120000 index b0fa4ef1c08..00000000000 --- a/test/fallback/completions/golangci-lint +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_golangci-lint \ No newline at end of file diff --git a/test/fallback/completions/golangci-lint.bash b/test/fallback/completions/golangci-lint.bash new file mode 120000 index 00000000000..b80b61e830e --- /dev/null +++ b/test/fallback/completions/golangci-lint.bash @@ -0,0 +1 @@ +../../../completions-fallback/golangci-lint.bash \ No newline at end of file diff --git a/test/fallback/completions/gsctl b/test/fallback/completions/gsctl deleted file mode 120000 index e351e869b09..00000000000 --- a/test/fallback/completions/gsctl +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_gsctl \ No newline at end of file diff --git a/test/fallback/completions/gsctl.bash b/test/fallback/completions/gsctl.bash new file mode 120000 index 00000000000..59256ff007b --- /dev/null +++ b/test/fallback/completions/gsctl.bash @@ -0,0 +1 @@ +../../../completions-fallback/gsctl.bash \ No newline at end of file diff --git a/test/fallback/completions/hexdump b/test/fallback/completions/hexdump deleted file mode 120000 index 90708a0744a..00000000000 --- a/test/fallback/completions/hexdump +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_hexdump \ No newline at end of file diff --git a/test/fallback/completions/hexdump.bash b/test/fallback/completions/hexdump.bash new file mode 120000 index 00000000000..86d4efbf210 --- /dev/null +++ b/test/fallback/completions/hexdump.bash @@ -0,0 +1 @@ +../../../completions-fallback/hexdump.bash \ No newline at end of file diff --git a/test/fallback/completions/hwclock b/test/fallback/completions/hwclock deleted file mode 120000 index 7cb778e8026..00000000000 --- a/test/fallback/completions/hwclock +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_hwclock \ No newline at end of file diff --git a/test/fallback/completions/hwclock.bash b/test/fallback/completions/hwclock.bash new file mode 120000 index 00000000000..354bbbf2e3a --- /dev/null +++ b/test/fallback/completions/hwclock.bash @@ -0,0 +1 @@ +../../../completions-fallback/hwclock.bash \ No newline at end of file diff --git a/test/fallback/completions/insmod b/test/fallback/completions/insmod deleted file mode 120000 index a8a107c914f..00000000000 --- a/test/fallback/completions/insmod +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_insmod \ No newline at end of file diff --git a/test/fallback/completions/insmod.bash b/test/fallback/completions/insmod.bash new file mode 120000 index 00000000000..f4567eb0ff1 --- /dev/null +++ b/test/fallback/completions/insmod.bash @@ -0,0 +1 @@ +../../../completions-fallback/insmod.bash \ No newline at end of file diff --git a/test/fallback/completions/ionice b/test/fallback/completions/ionice deleted file mode 120000 index 48613097ab2..00000000000 --- a/test/fallback/completions/ionice +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_ionice \ No newline at end of file diff --git a/test/fallback/completions/ionice.bash b/test/fallback/completions/ionice.bash new file mode 120000 index 00000000000..e6ff9de1afb --- /dev/null +++ b/test/fallback/completions/ionice.bash @@ -0,0 +1 @@ +../../../completions-fallback/ionice.bash \ No newline at end of file diff --git a/test/fallback/completions/jj b/test/fallback/completions/jj deleted file mode 120000 index 0f7b3e28179..00000000000 --- a/test/fallback/completions/jj +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_jj \ No newline at end of file diff --git a/test/fallback/completions/jj.bash b/test/fallback/completions/jj.bash new file mode 120000 index 00000000000..7e373bd8000 --- /dev/null +++ b/test/fallback/completions/jj.bash @@ -0,0 +1 @@ +../../../completions-fallback/jj.bash \ No newline at end of file diff --git a/test/fallback/completions/jungle b/test/fallback/completions/jungle deleted file mode 120000 index e9069c2ac32..00000000000 --- a/test/fallback/completions/jungle +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_jungle \ No newline at end of file diff --git a/test/fallback/completions/jungle.bash b/test/fallback/completions/jungle.bash new file mode 120000 index 00000000000..5ce40180a86 --- /dev/null +++ b/test/fallback/completions/jungle.bash @@ -0,0 +1 @@ +../../../completions-fallback/jungle.bash \ No newline at end of file diff --git a/test/fallback/completions/keyring b/test/fallback/completions/keyring deleted file mode 120000 index 354980b9e45..00000000000 --- a/test/fallback/completions/keyring +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_keyring \ No newline at end of file diff --git a/test/fallback/completions/keyring.bash b/test/fallback/completions/keyring.bash new file mode 120000 index 00000000000..0e59a2502b5 --- /dev/null +++ b/test/fallback/completions/keyring.bash @@ -0,0 +1 @@ +../../../completions-fallback/keyring.bash \ No newline at end of file diff --git a/test/fallback/completions/kontena b/test/fallback/completions/kontena deleted file mode 120000 index ceeb17dbe56..00000000000 --- a/test/fallback/completions/kontena +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_kontena \ No newline at end of file diff --git a/test/fallback/completions/kontena.bash b/test/fallback/completions/kontena.bash new file mode 120000 index 00000000000..9c8514ad454 --- /dev/null +++ b/test/fallback/completions/kontena.bash @@ -0,0 +1 @@ +../../../completions-fallback/kontena.bash \ No newline at end of file diff --git a/test/fallback/completions/look b/test/fallback/completions/look deleted file mode 120000 index f59ed264dc5..00000000000 --- a/test/fallback/completions/look +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_look \ No newline at end of file diff --git a/test/fallback/completions/look.bash b/test/fallback/completions/look.bash new file mode 120000 index 00000000000..f809de03f08 --- /dev/null +++ b/test/fallback/completions/look.bash @@ -0,0 +1 @@ +../../../completions-fallback/look.bash \ No newline at end of file diff --git a/test/fallback/completions/mdbook b/test/fallback/completions/mdbook deleted file mode 120000 index 70a0f1de4bf..00000000000 --- a/test/fallback/completions/mdbook +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_mdbook \ No newline at end of file diff --git a/test/fallback/completions/mdbook.bash b/test/fallback/completions/mdbook.bash new file mode 120000 index 00000000000..1ffd70065aa --- /dev/null +++ b/test/fallback/completions/mdbook.bash @@ -0,0 +1 @@ +../../../completions-fallback/mdbook.bash \ No newline at end of file diff --git a/test/fallback/completions/mock b/test/fallback/completions/mock deleted file mode 120000 index 9a7a69a8b31..00000000000 --- a/test/fallback/completions/mock +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_mock \ No newline at end of file diff --git a/test/fallback/completions/mock.bash b/test/fallback/completions/mock.bash new file mode 120000 index 00000000000..b8d200c89ba --- /dev/null +++ b/test/fallback/completions/mock.bash @@ -0,0 +1 @@ +../../../completions-fallback/mock.bash \ No newline at end of file diff --git a/test/fallback/completions/modinfo b/test/fallback/completions/modinfo deleted file mode 120000 index edb41dae2bf..00000000000 --- a/test/fallback/completions/modinfo +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_modinfo \ No newline at end of file diff --git a/test/fallback/completions/modinfo.bash b/test/fallback/completions/modinfo.bash new file mode 120000 index 00000000000..04c3aa3d5c2 --- /dev/null +++ b/test/fallback/completions/modinfo.bash @@ -0,0 +1 @@ +../../../completions-fallback/modinfo.bash \ No newline at end of file diff --git a/test/fallback/completions/modprobe b/test/fallback/completions/modprobe deleted file mode 120000 index 634041053de..00000000000 --- a/test/fallback/completions/modprobe +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_modprobe \ No newline at end of file diff --git a/test/fallback/completions/modprobe.bash b/test/fallback/completions/modprobe.bash new file mode 120000 index 00000000000..ec3a0a6c3c7 --- /dev/null +++ b/test/fallback/completions/modprobe.bash @@ -0,0 +1 @@ +../../../completions-fallback/modprobe.bash \ No newline at end of file diff --git a/test/fallback/completions/modules b/test/fallback/completions/modules deleted file mode 120000 index c3fa5e2e236..00000000000 --- a/test/fallback/completions/modules +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_modules \ No newline at end of file diff --git a/test/fallback/completions/modules.bash b/test/fallback/completions/modules.bash new file mode 120000 index 00000000000..bef087b55c1 --- /dev/null +++ b/test/fallback/completions/modules.bash @@ -0,0 +1 @@ +../../../completions-fallback/modules.bash \ No newline at end of file diff --git a/test/fallback/completions/mount b/test/fallback/completions/mount deleted file mode 120000 index 84a65f1e0b8..00000000000 --- a/test/fallback/completions/mount +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_mount \ No newline at end of file diff --git a/test/fallback/completions/mount.bash b/test/fallback/completions/mount.bash new file mode 120000 index 00000000000..8a0b86c8bb1 --- /dev/null +++ b/test/fallback/completions/mount.bash @@ -0,0 +1 @@ +../../../completions-fallback/mount.bash \ No newline at end of file diff --git a/test/fallback/completions/mount.linux b/test/fallback/completions/mount.linux deleted file mode 120000 index 216ae8a8996..00000000000 --- a/test/fallback/completions/mount.linux +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_mount.linux \ No newline at end of file diff --git a/test/fallback/completions/mount.linux.bash b/test/fallback/completions/mount.linux.bash new file mode 120000 index 00000000000..8a54b5761f7 --- /dev/null +++ b/test/fallback/completions/mount.linux.bash @@ -0,0 +1 @@ +../../../completions-fallback/mount.linux.bash \ No newline at end of file diff --git a/test/fallback/completions/mtr b/test/fallback/completions/mtr deleted file mode 120000 index 8f77205e575..00000000000 --- a/test/fallback/completions/mtr +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_mtr \ No newline at end of file diff --git a/test/fallback/completions/mtr.bash b/test/fallback/completions/mtr.bash new file mode 120000 index 00000000000..c6477236b2d --- /dev/null +++ b/test/fallback/completions/mtr.bash @@ -0,0 +1 @@ +../../../completions-fallback/mtr.bash \ No newline at end of file diff --git a/test/fallback/completions/newgrp b/test/fallback/completions/newgrp deleted file mode 120000 index cab15d0bbf5..00000000000 --- a/test/fallback/completions/newgrp +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_newgrp \ No newline at end of file diff --git a/test/fallback/completions/newgrp.bash b/test/fallback/completions/newgrp.bash new file mode 120000 index 00000000000..ae602f79278 --- /dev/null +++ b/test/fallback/completions/newgrp.bash @@ -0,0 +1 @@ +../../../completions-fallback/newgrp.bash \ No newline at end of file diff --git a/test/fallback/completions/nmcli b/test/fallback/completions/nmcli deleted file mode 120000 index 0400cca01a8..00000000000 --- a/test/fallback/completions/nmcli +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_nmcli \ No newline at end of file diff --git a/test/fallback/completions/nmcli.bash b/test/fallback/completions/nmcli.bash new file mode 120000 index 00000000000..140fed071bb --- /dev/null +++ b/test/fallback/completions/nmcli.bash @@ -0,0 +1 @@ +../../../completions-fallback/nmcli.bash \ No newline at end of file diff --git a/test/fallback/completions/nox b/test/fallback/completions/nox deleted file mode 120000 index 1ff4f70476c..00000000000 --- a/test/fallback/completions/nox +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_nox \ No newline at end of file diff --git a/test/fallback/completions/nox.bash b/test/fallback/completions/nox.bash new file mode 120000 index 00000000000..3923f0a6196 --- /dev/null +++ b/test/fallback/completions/nox.bash @@ -0,0 +1 @@ +../../../completions-fallback/nox.bash \ No newline at end of file diff --git a/test/fallback/completions/nvm b/test/fallback/completions/nvm deleted file mode 120000 index bcaccbb3eca..00000000000 --- a/test/fallback/completions/nvm +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_nvm \ No newline at end of file diff --git a/test/fallback/completions/nvm.bash b/test/fallback/completions/nvm.bash new file mode 120000 index 00000000000..45e2c5bbb58 --- /dev/null +++ b/test/fallback/completions/nvm.bash @@ -0,0 +1 @@ +../../../completions-fallback/nvm.bash \ No newline at end of file diff --git a/test/fallback/completions/pip b/test/fallback/completions/pip deleted file mode 120000 index 5fb8a9c4542..00000000000 --- a/test/fallback/completions/pip +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_pip \ No newline at end of file diff --git a/test/fallback/completions/pip.bash b/test/fallback/completions/pip.bash new file mode 120000 index 00000000000..9031d4d3165 --- /dev/null +++ b/test/fallback/completions/pip.bash @@ -0,0 +1 @@ +../../../completions-fallback/pip.bash \ No newline at end of file diff --git a/test/fallback/completions/pipenv b/test/fallback/completions/pipenv deleted file mode 120000 index faa7ea36980..00000000000 --- a/test/fallback/completions/pipenv +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_pipenv \ No newline at end of file diff --git a/test/fallback/completions/pipenv.bash b/test/fallback/completions/pipenv.bash new file mode 120000 index 00000000000..6da17c63ab6 --- /dev/null +++ b/test/fallback/completions/pipenv.bash @@ -0,0 +1 @@ +../../../completions-fallback/pipenv.bash \ No newline at end of file diff --git a/test/fallback/completions/renice b/test/fallback/completions/renice deleted file mode 120000 index 4a6217917f6..00000000000 --- a/test/fallback/completions/renice +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_renice \ No newline at end of file diff --git a/test/fallback/completions/renice.bash b/test/fallback/completions/renice.bash new file mode 120000 index 00000000000..eedc4d87c25 --- /dev/null +++ b/test/fallback/completions/renice.bash @@ -0,0 +1 @@ +../../../completions-fallback/renice.bash \ No newline at end of file diff --git a/test/fallback/completions/repomanage b/test/fallback/completions/repomanage deleted file mode 120000 index b6feb306810..00000000000 --- a/test/fallback/completions/repomanage +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_repomanage \ No newline at end of file diff --git a/test/fallback/completions/repomanage.bash b/test/fallback/completions/repomanage.bash new file mode 120000 index 00000000000..71cce3c41b2 --- /dev/null +++ b/test/fallback/completions/repomanage.bash @@ -0,0 +1 @@ +../../../completions-fallback/repomanage.bash \ No newline at end of file diff --git a/test/fallback/completions/reptyr b/test/fallback/completions/reptyr deleted file mode 120000 index d67c4b57e5b..00000000000 --- a/test/fallback/completions/reptyr +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_reptyr \ No newline at end of file diff --git a/test/fallback/completions/reptyr.bash b/test/fallback/completions/reptyr.bash new file mode 120000 index 00000000000..852606456ea --- /dev/null +++ b/test/fallback/completions/reptyr.bash @@ -0,0 +1 @@ +../../../completions-fallback/reptyr.bash \ No newline at end of file diff --git a/test/fallback/completions/rfkill b/test/fallback/completions/rfkill deleted file mode 120000 index 6c3c8f67dde..00000000000 --- a/test/fallback/completions/rfkill +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_rfkill \ No newline at end of file diff --git a/test/fallback/completions/rfkill.bash b/test/fallback/completions/rfkill.bash new file mode 120000 index 00000000000..b4416d19eb2 --- /dev/null +++ b/test/fallback/completions/rfkill.bash @@ -0,0 +1 @@ +../../../completions-fallback/rfkill.bash \ No newline at end of file diff --git a/test/fallback/completions/rg b/test/fallback/completions/rg deleted file mode 120000 index cb88b041b19..00000000000 --- a/test/fallback/completions/rg +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_rg \ No newline at end of file diff --git a/test/fallback/completions/rg.bash b/test/fallback/completions/rg.bash new file mode 120000 index 00000000000..91e6ed5f2d7 --- /dev/null +++ b/test/fallback/completions/rg.bash @@ -0,0 +1 @@ +../../../completions-fallback/rg.bash \ No newline at end of file diff --git a/test/fallback/completions/rmmod b/test/fallback/completions/rmmod deleted file mode 120000 index 57f58328f5a..00000000000 --- a/test/fallback/completions/rmmod +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_rmmod \ No newline at end of file diff --git a/test/fallback/completions/rmmod.bash b/test/fallback/completions/rmmod.bash new file mode 120000 index 00000000000..9be9cd6d7bb --- /dev/null +++ b/test/fallback/completions/rmmod.bash @@ -0,0 +1 @@ +../../../completions-fallback/rmmod.bash \ No newline at end of file diff --git a/test/fallback/completions/rtcwake b/test/fallback/completions/rtcwake deleted file mode 120000 index 244c7f13d35..00000000000 --- a/test/fallback/completions/rtcwake +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_rtcwake \ No newline at end of file diff --git a/test/fallback/completions/rtcwake.bash b/test/fallback/completions/rtcwake.bash new file mode 120000 index 00000000000..cb1bca07218 --- /dev/null +++ b/test/fallback/completions/rtcwake.bash @@ -0,0 +1 @@ +../../../completions-fallback/rtcwake.bash \ No newline at end of file diff --git a/test/fallback/completions/ruff b/test/fallback/completions/ruff deleted file mode 120000 index 2d6104b324f..00000000000 --- a/test/fallback/completions/ruff +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_ruff \ No newline at end of file diff --git a/test/fallback/completions/ruff.bash b/test/fallback/completions/ruff.bash new file mode 120000 index 00000000000..158e02a19e4 --- /dev/null +++ b/test/fallback/completions/ruff.bash @@ -0,0 +1 @@ +../../../completions-fallback/ruff.bash \ No newline at end of file diff --git a/test/fallback/completions/runuser b/test/fallback/completions/runuser deleted file mode 120000 index c3e3422b332..00000000000 --- a/test/fallback/completions/runuser +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_runuser \ No newline at end of file diff --git a/test/fallback/completions/runuser.bash b/test/fallback/completions/runuser.bash new file mode 120000 index 00000000000..00215a8f393 --- /dev/null +++ b/test/fallback/completions/runuser.bash @@ -0,0 +1 @@ +../../../completions-fallback/runuser.bash \ No newline at end of file diff --git a/test/fallback/completions/rustup b/test/fallback/completions/rustup deleted file mode 120000 index 18b256a7dfd..00000000000 --- a/test/fallback/completions/rustup +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_rustup \ No newline at end of file diff --git a/test/fallback/completions/rustup.bash b/test/fallback/completions/rustup.bash new file mode 120000 index 00000000000..ba956afa5e9 --- /dev/null +++ b/test/fallback/completions/rustup.bash @@ -0,0 +1 @@ +../../../completions-fallback/rustup.bash \ No newline at end of file diff --git a/test/fallback/completions/secret-tool b/test/fallback/completions/secret-tool deleted file mode 120000 index ab0a8361057..00000000000 --- a/test/fallback/completions/secret-tool +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_secret-tool \ No newline at end of file diff --git a/test/fallback/completions/secret-tool.bash b/test/fallback/completions/secret-tool.bash new file mode 120000 index 00000000000..37801eed304 --- /dev/null +++ b/test/fallback/completions/secret-tool.bash @@ -0,0 +1 @@ +../../../completions-fallback/secret-tool.bash \ No newline at end of file diff --git a/test/fallback/completions/shtab b/test/fallback/completions/shtab deleted file mode 120000 index fc6b98cca6a..00000000000 --- a/test/fallback/completions/shtab +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_shtab \ No newline at end of file diff --git a/test/fallback/completions/shtab.bash b/test/fallback/completions/shtab.bash new file mode 120000 index 00000000000..5748f2a3458 --- /dev/null +++ b/test/fallback/completions/shtab.bash @@ -0,0 +1 @@ +../../../completions-fallback/shtab.bash \ No newline at end of file diff --git a/test/fallback/completions/slackpkg b/test/fallback/completions/slackpkg deleted file mode 120000 index 990071ab92c..00000000000 --- a/test/fallback/completions/slackpkg +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_slackpkg \ No newline at end of file diff --git a/test/fallback/completions/slackpkg.bash b/test/fallback/completions/slackpkg.bash new file mode 120000 index 00000000000..faefc58ea21 --- /dev/null +++ b/test/fallback/completions/slackpkg.bash @@ -0,0 +1 @@ +../../../completions-fallback/slackpkg.bash \ No newline at end of file diff --git a/test/fallback/completions/sops b/test/fallback/completions/sops deleted file mode 120000 index d18b10cc121..00000000000 --- a/test/fallback/completions/sops +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_sops \ No newline at end of file diff --git a/test/fallback/completions/sops.bash b/test/fallback/completions/sops.bash new file mode 120000 index 00000000000..e13271c014c --- /dev/null +++ b/test/fallback/completions/sops.bash @@ -0,0 +1 @@ +../../../completions-fallback/sops.bash \ No newline at end of file diff --git a/test/fallback/completions/stern b/test/fallback/completions/stern deleted file mode 120000 index b8668544fa0..00000000000 --- a/test/fallback/completions/stern +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_stern \ No newline at end of file diff --git a/test/fallback/completions/stern.bash b/test/fallback/completions/stern.bash new file mode 120000 index 00000000000..5cbb43f65fb --- /dev/null +++ b/test/fallback/completions/stern.bash @@ -0,0 +1 @@ +../../../completions-fallback/stern.bash \ No newline at end of file diff --git a/test/fallback/completions/stripe b/test/fallback/completions/stripe deleted file mode 120000 index a70455bc080..00000000000 --- a/test/fallback/completions/stripe +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_stripe \ No newline at end of file diff --git a/test/fallback/completions/stripe.bash b/test/fallback/completions/stripe.bash new file mode 120000 index 00000000000..87646f834f1 --- /dev/null +++ b/test/fallback/completions/stripe.bash @@ -0,0 +1 @@ +../../../completions-fallback/stripe.bash \ No newline at end of file diff --git a/test/fallback/completions/su b/test/fallback/completions/su deleted file mode 120000 index 9e972cdadff..00000000000 --- a/test/fallback/completions/su +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_su \ No newline at end of file diff --git a/test/fallback/completions/su.bash b/test/fallback/completions/su.bash new file mode 120000 index 00000000000..3bc1c0c7922 --- /dev/null +++ b/test/fallback/completions/su.bash @@ -0,0 +1 @@ +../../../completions-fallback/su.bash \ No newline at end of file diff --git a/test/fallback/completions/svn b/test/fallback/completions/svn deleted file mode 120000 index 0bf5b7fe788..00000000000 --- a/test/fallback/completions/svn +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_svn \ No newline at end of file diff --git a/test/fallback/completions/svn.bash b/test/fallback/completions/svn.bash new file mode 120000 index 00000000000..12f0c08c3bb --- /dev/null +++ b/test/fallback/completions/svn.bash @@ -0,0 +1 @@ +../../../completions-fallback/svn.bash \ No newline at end of file diff --git a/test/fallback/completions/svnadmin b/test/fallback/completions/svnadmin deleted file mode 120000 index 90ce5ef5780..00000000000 --- a/test/fallback/completions/svnadmin +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_svnadmin \ No newline at end of file diff --git a/test/fallback/completions/svnadmin.bash b/test/fallback/completions/svnadmin.bash new file mode 120000 index 00000000000..40aeceb5439 --- /dev/null +++ b/test/fallback/completions/svnadmin.bash @@ -0,0 +1 @@ +../../../completions-fallback/svnadmin.bash \ No newline at end of file diff --git a/test/fallback/completions/svnlook b/test/fallback/completions/svnlook deleted file mode 120000 index efad3dc06cd..00000000000 --- a/test/fallback/completions/svnlook +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_svnlook \ No newline at end of file diff --git a/test/fallback/completions/svnlook.bash b/test/fallback/completions/svnlook.bash new file mode 120000 index 00000000000..736720fb3b7 --- /dev/null +++ b/test/fallback/completions/svnlook.bash @@ -0,0 +1 @@ +../../../completions-fallback/svnlook.bash \ No newline at end of file diff --git a/test/fallback/completions/task b/test/fallback/completions/task deleted file mode 120000 index 94f6d20b0b1..00000000000 --- a/test/fallback/completions/task +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_task \ No newline at end of file diff --git a/test/fallback/completions/task.bash b/test/fallback/completions/task.bash new file mode 120000 index 00000000000..f3b4e452f82 --- /dev/null +++ b/test/fallback/completions/task.bash @@ -0,0 +1 @@ +../../../completions-fallback/task.bash \ No newline at end of file diff --git a/test/fallback/completions/tokio-console b/test/fallback/completions/tokio-console deleted file mode 120000 index 1fb8249f5da..00000000000 --- a/test/fallback/completions/tokio-console +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_tokio-console \ No newline at end of file diff --git a/test/fallback/completions/tokio-console.bash b/test/fallback/completions/tokio-console.bash new file mode 120000 index 00000000000..d16f0159d33 --- /dev/null +++ b/test/fallback/completions/tokio-console.bash @@ -0,0 +1 @@ +../../../completions-fallback/tokio-console.bash \ No newline at end of file diff --git a/test/fallback/completions/udevadm b/test/fallback/completions/udevadm deleted file mode 120000 index 2498b90f346..00000000000 --- a/test/fallback/completions/udevadm +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_udevadm \ No newline at end of file diff --git a/test/fallback/completions/udevadm.bash b/test/fallback/completions/udevadm.bash new file mode 120000 index 00000000000..1ac9114e7a3 --- /dev/null +++ b/test/fallback/completions/udevadm.bash @@ -0,0 +1 @@ +../../../completions-fallback/udevadm.bash \ No newline at end of file diff --git a/test/fallback/completions/umount b/test/fallback/completions/umount deleted file mode 120000 index 77f661eef4d..00000000000 --- a/test/fallback/completions/umount +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_umount \ No newline at end of file diff --git a/test/fallback/completions/umount.bash b/test/fallback/completions/umount.bash new file mode 120000 index 00000000000..099a9bdc76a --- /dev/null +++ b/test/fallback/completions/umount.bash @@ -0,0 +1 @@ +../../../completions-fallback/umount.bash \ No newline at end of file diff --git a/test/fallback/completions/umount.linux b/test/fallback/completions/umount.linux deleted file mode 120000 index 6066bd84e8f..00000000000 --- a/test/fallback/completions/umount.linux +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_umount.linux \ No newline at end of file diff --git a/test/fallback/completions/umount.linux.bash b/test/fallback/completions/umount.linux.bash new file mode 120000 index 00000000000..8fe37fac1fc --- /dev/null +++ b/test/fallback/completions/umount.linux.bash @@ -0,0 +1 @@ +../../../completions-fallback/umount.linux.bash \ No newline at end of file diff --git a/test/fallback/completions/uvx b/test/fallback/completions/uvx deleted file mode 120000 index ae2e60b1d70..00000000000 --- a/test/fallback/completions/uvx +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_uvx \ No newline at end of file diff --git a/test/fallback/completions/uvx.bash b/test/fallback/completions/uvx.bash new file mode 120000 index 00000000000..2f7839970d2 --- /dev/null +++ b/test/fallback/completions/uvx.bash @@ -0,0 +1 @@ +../../../completions-fallback/uvx.bash \ No newline at end of file diff --git a/test/fallback/completions/vault b/test/fallback/completions/vault deleted file mode 120000 index abd0ad28747..00000000000 --- a/test/fallback/completions/vault +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_vault \ No newline at end of file diff --git a/test/fallback/completions/vault.bash b/test/fallback/completions/vault.bash new file mode 120000 index 00000000000..51cec1dddcf --- /dev/null +++ b/test/fallback/completions/vault.bash @@ -0,0 +1 @@ +../../../completions-fallback/vault.bash \ No newline at end of file diff --git a/test/fallback/completions/wasmer b/test/fallback/completions/wasmer deleted file mode 120000 index 7ae1f7b4be5..00000000000 --- a/test/fallback/completions/wasmer +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_wasmer \ No newline at end of file diff --git a/test/fallback/completions/wasmer.bash b/test/fallback/completions/wasmer.bash new file mode 120000 index 00000000000..ede8fa153d1 --- /dev/null +++ b/test/fallback/completions/wasmer.bash @@ -0,0 +1 @@ +../../../completions-fallback/wasmer.bash \ No newline at end of file diff --git a/test/fallback/completions/write b/test/fallback/completions/write deleted file mode 120000 index e4d2f2c9ec8..00000000000 --- a/test/fallback/completions/write +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_write \ No newline at end of file diff --git a/test/fallback/completions/write.bash b/test/fallback/completions/write.bash new file mode 120000 index 00000000000..d93095c403b --- /dev/null +++ b/test/fallback/completions/write.bash @@ -0,0 +1 @@ +../../../completions-fallback/write.bash \ No newline at end of file diff --git a/test/fallback/completions/xm b/test/fallback/completions/xm deleted file mode 120000 index 1fb884000d2..00000000000 --- a/test/fallback/completions/xm +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_xm \ No newline at end of file diff --git a/test/fallback/completions/xm.bash b/test/fallback/completions/xm.bash new file mode 120000 index 00000000000..24fa3115003 --- /dev/null +++ b/test/fallback/completions/xm.bash @@ -0,0 +1 @@ +../../../completions-fallback/xm.bash \ No newline at end of file diff --git a/test/fallback/completions/yq b/test/fallback/completions/yq deleted file mode 120000 index 9ea0a280db2..00000000000 --- a/test/fallback/completions/yq +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_yq \ No newline at end of file diff --git a/test/fallback/completions/yq.bash b/test/fallback/completions/yq.bash new file mode 120000 index 00000000000..f0d97d11e22 --- /dev/null +++ b/test/fallback/completions/yq.bash @@ -0,0 +1 @@ +../../../completions-fallback/yq.bash \ No newline at end of file diff --git a/test/fallback/completions/yum b/test/fallback/completions/yum deleted file mode 120000 index cd8a7ed83f6..00000000000 --- a/test/fallback/completions/yum +++ /dev/null @@ -1 +0,0 @@ -../../../completions/_yum \ No newline at end of file diff --git a/test/fallback/completions/yum.bash b/test/fallback/completions/yum.bash new file mode 120000 index 00000000000..87e093a734f --- /dev/null +++ b/test/fallback/completions/yum.bash @@ -0,0 +1 @@ +../../../completions-fallback/yum.bash \ No newline at end of file From 55877b86ab7aa17b0b5c45ea2ab5e94648f93129 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Mon, 29 Dec 2025 14:04:00 +0900 Subject: [PATCH 2/3] refactor: update the locations of completions and helpers * refactor: move "completions{/_ => -fallback/}" * refcator: move "completions{ => -core}/" * refcator: move "helpers{ => -core}/*" * fix(_comp_load): completion files in "/completions-core" and "/completions-fallback" are searched finally. Co-authored-by: Yedaya Katsman --- .pre-commit-config.yaml | 12 +- .typos.toml | 48 +- Makefile.am | 3 +- README.md | 34 +- bash_completion | 111 +- completions-core/.gitignore | 761 ++++----- completions-core/Makefile.am | 2125 ++++++++++--------------- completions-core/make.bash | 2 +- completions-core/perl.bash | 2 +- completions-core/python.bash | 2 +- completions-fallback/.gitignore | 225 +++ completions-fallback/Makefile.am | 552 +++++++ completions-fallback/jungle.bash | 4 +- completions-fallback/mount.bash | 2 +- completions-fallback/umount.bash | 2 +- completions/Makefile.am | 29 + configure.ac | 3 + doc/api-and-naming.md | 4 +- helpers-core/Makefile.am | 6 +- helpers-core/make-extract-targets.awk | 4 +- helpers/Makefile.am | 10 + setup-symlinks.sh | 4 +- test/fallback/completions/Makefile.am | 138 +- test/fallback/update-fallback-links | 6 +- test/runLint | 2 +- test/t/test_rsync.py | 4 +- test/t/unit/test_unit_load.py | 4 +- 27 files changed, 2094 insertions(+), 2005 deletions(-) create mode 100644 completions-fallback/.gitignore create mode 100644 completions-fallback/Makefile.am create mode 100644 completions/Makefile.am create mode 100644 helpers/Makefile.am diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a590b34c7c1..77e49536f6e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,8 +18,7 @@ repos: hooks: - id: shfmt types: [text] - files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-core/.+|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ - exclude: ^completions-core/(\.gitignore|Makefile.*)$ + files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-(core|fallback)/.+\.bash|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.11.0.1 @@ -27,8 +26,7 @@ repos: - id: shellcheck args: [-f, gcc] types: [text] - files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-core/.+|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ - exclude: ^completions-core/(\.gitignore|Makefile.*)$ + files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-(core|fallback)/.+\.bash|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ require_serial: false # We disable SC1090 anyway, so parallel is ok - repo: local @@ -44,7 +42,7 @@ repos: name: update-test-fallback-links language: script entry: test/fallback/update-fallback-links - files: ^completions-core/_ + files: ^completions-fallback/ pass_filenames: false - repo: https://github.com/astral-sh/ruff-pre-commit @@ -53,11 +51,9 @@ repos: - id: ruff-check types: [text] files: ^(helpers-core/python|.+\.py)$ - exclude: ^completions-core/ - id: ruff-format types: [text] files: ^(helpers-core/python|.+\.py)$ - exclude: ^completions-core/ - repo: local hooks: @@ -70,7 +66,7 @@ repos: args: [--config-file=test/setup.cfg] types: [python] # Intentionally not run on helpers-core/python (we support very old versions) - exclude: ^completions-core/|^test/fixtures/pytest/ + exclude: ^completions-(core|fallback)/|^test/fixtures/pytest/ - repo: https://github.com/perltidy/perltidy rev: "20250912" diff --git a/.typos.toml b/.typos.toml index 5de83d1402e..40d51381bbb 100644 --- a/.typos.toml +++ b/.typos.toml @@ -3,66 +3,66 @@ BRE = "BRE" [default.extend-words] -# completions/abook +# completions-core/abook informat = "informat" -# completions/ri +# completions-core/ri ane = "ane" -# completions/reportbug +# completions-core/reportbug buildd = "buildd" -# completions/tar +# completions-core/tar caf = "caf" -# completions/chage, test/t/Makefile.am, test/t/test_chage.py, +# completions-core/chage, test/t/Makefile.am, test/t/test_chage.py, # test/test-cmd-list.txt chage = "chage" # test/t/test_ccache.py clea = "clea" # test/t/test_pylint_3.py clien = "clien" -# completions/openssl +# completions-core/openssl ede = "ede" -# completions/patch +# completions-core/patch fior = "fior" -# completions/make +# completions-core/make fo = "fo" -# completions/.gitignore, completions/Makefile.am, completions/_hexdump, -# completions/gnome-screenshot, completions/mii-diag, completions/mii-tool, -# completions/qemu, +# completions-fallback/.gitignore, completions-fallback/Makefile.am, +# completions-fallback/_hexdump, completions-core/gnome-screenshot, +# completions-core/mii-diag, completions-core/mii-tool, completions-core/qemu, hd = "hd" # test/t/test_ccache.py hel = "hel" -# completions/bts +# completions-core/bts helo = "helo" -# completions/ip +# completions-core/ip iif = "iif" -# completions/tcpdump +# completions-core/tcpdump inout = "inout" # test/t/unit/test_unit_expand_glob.py ket = "ket" -# completions/isql +# completions-core/isql Lins = "Lins" -# completions/hcitool, completions/ip +# completions-core/hcitool, completions-core/ip lst = "lst" -# completions/tshark, test/t/test_screen.py +# completions-core/tshark, test/t/test_screen.py nd = "nd" # bash_completion odf = "odf" -# completions/ip +# completions-core/ip oif = "oif" -# completions/mplayer +# completions-core/mplayer oly = "oly" # test/t/unit/test_unit_find_unique_completion_pair.py ot = "ot" -# completions/modinfo +# completions-core/modinfo parm = "parm" -# bash_completion, completions/eog, completions/gnome-screenshot, +# bash_completion, completions-core/eog, completions-core/gnome-screenshot, # test/t/test_nmap.py pn = "pn" -# completions/wget +# completions-core/wget referer = "referer" -# completions/_mount.linux, completions/tune2fs, test/t/test_curl.py, +# completions-core/_mount.linux, completions-core/tune2fs, test/t/test_curl.py, # test/t/unit/test_unit_find_unique_completion_pair.py ro = "ro" -# completions/ps +# completions-core/ps ser = "ser" [files] diff --git a/Makefile.am b/Makefile.am index 849287645fe..22408098204 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,5 @@ -SUBDIRS = completions doc helpers test +SUBDIRS = doc completions-core completions-fallback helpers-core \ + test completions helpers pkgdata_DATA = bash_completion diff --git a/README.md b/README.md index b9f5d0e55e3..fcd966490fb 100644 --- a/README.md +++ b/README.md @@ -370,24 +370,26 @@ A. Absolutely not. zsh has an extremely sophisticated completion system **Q. What is the search order for the completion file of each target command?** A. The completion files of commands are looked up by the shell function - `__load_completion`. Here, the search order in bash-completion >= 2.12 is - explained. - - 1. `BASH_COMPLETION_USER_DIR`. The subdirectory `completions` of each paths - in `BASH_COMPLETION_USER_DIR` separated by colons is considered for a - completion directory. - 2. The location of the main `bash_completion` file. The subdirectory - `completions` in the same directory as `bash_completion` is considered. + `__load_completion`. Here, the search order in bash-completion >= 2.18 is + explained. We first list up the bash-completion directories: + + 1. `BASH_COMPLETION_USER_DIR`. Each paths in `BASH_COMPLETION_USER_DIR` + separated by colons is considered for a completion directory. + 2. The location of the main `bash_completion` file. The directory + containing `bash_completion` is considered. 3. The location of the target command. When the real location of the command is in the directory `/bin` or `/sbin`, the directory - `/share/bash-completion/completions` is considered. + `/share/bash-completion` is considered. 4. `XDG_DATA_DIRS` (or the system directories `/usr/local/share:/usr/share` - if empty). The subdirectory `bash-completion/completions` of each paths + if empty). The subdirectory `bash-completion` of each paths in `XDG_DATA_DIRS` separated by colons is considered. - The completion files of the name `` or `.bash`, where `` is - the name of the target command, are searched in the above completion - directories in order. The file that is found first is used. When no - completion file is found in any completion directories in this process, the - completion files of the name `_` is next searched in the completion - directories in order. + The completion files of the name `.bash` or ``, where `` is + the name of the target command, are searched in the subdirectory + `completions` in the above bash-completion directories in order. The file + that is found first is used. When no completion file is found in this step, + the completion files of the name `_` is next searched in the + `completions` subdirectories in order. When no completion file has not yet + been found in any `completions` directories, the completion files in the + subdirectory `completions-core` and `completions-fallback` at the location of + the main `bash_completion` file are searched in order. diff --git a/bash_completion b/bash_completion index 636e942c283..9b8c2138fc0 100644 --- a/bash_completion +++ b/bash_completion @@ -3381,6 +3381,58 @@ _comp__init_base_directory() } _comp__init_base_directory +# Attempt to load the specified file and check if the completion setting is +# successfully loaded. +# +# @param $1 compfile ... filename to check. +# @var[in] cmdname +# @var[in] cmd +# @var[in] backslash +# @var[in] origcmd +# @var[in] source_args +# @exit 0 when the file is found, and the completion setting was successfully +# loaded. Otherwise, 1. +_comp_load__visit_file() +{ + local compfile=$1 + shift + [[ -e $compfile ]] || return 1 + + # Set up default $IFS in case loaded completions depend on it, as well as + # for $compspec invocation below. + local IFS=$' \t\n' compspec + + # Avoid trying to source dirs as long as we support bash < 4.3 + # to avoid an fd leak; https://bugzilla.redhat.com/903540 + if [[ -d $compfile ]]; then + # Do not warn with . or .. (especially the former is common) + [[ $compfile == */.?(.) ]] || + echo "bash_completion: $compfile: is a directory" >&2 + elif . "$compfile" "$cmd" ${source_args[@]+"${source_args[@]}"}; then + + # At least $cmd is expected to have a completion set when we return + # successfully; see if it already does + if compspec=$(complete -p -- "$cmd" 2>/dev/null); then + # $cmd is the case in which we do backslash processing + [[ $backslash ]] && eval "$compspec \"\$backslash\$cmd\"" + # If invoked without path, that one should be set, too + # ...but let's not overwrite an existing one, if any + [[ $origcmd != */* ]] && + ! complete -p -- "$origcmd" &>/dev/null && + eval "$compspec \"\$origcmd\"" + return 0 + fi + # If not, see if we got one for $cmdname + if [[ $cmdname != "$cmd" ]] && compspec=$(complete -p -- "$cmdname" 2>/dev/null); then + # Use that for $cmd too, if we have a full path to it + [[ $cmd == /* ]] && eval "$compspec \"\$cmd\"" + return 0 + fi + # Nothing expected was set, continue lookup + fi + return 1 +} + # @since 2.12 _comp_load() { @@ -3422,10 +3474,9 @@ _comp_load() # 1) From BASH_COMPLETION_USER_DIR (e.g. ~/.local/share/bash-completion): # User installed completions. if [[ ${BASH_COMPLETION_USER_DIR-} ]]; then - _comp_split -F : paths "$BASH_COMPLETION_USER_DIR" && - dirs+=("${paths[@]/%//completions}") + _comp_split -F : dirs "$BASH_COMPLETION_USER_DIR" else - dirs=("${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions") + dirs=("${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion") fi # 2) From the location of bash_completion: Completions relative to the main @@ -3433,7 +3484,7 @@ _comp_load() # we want to prefer in-tree completions over ones possibly coming with a # system installed bash-completion. (Due to usual install layouts, this # often hits the correct completions in system installations, too.) - dirs+=("$_comp__base_directory/completions") + dirs+=("$_comp__base_directory") # 3) From bin directories extracted from the specified path to the command, # the real path to the command, and $PATH @@ -3443,60 +3494,30 @@ _comp_load() _comp_split -aF : paths "$PATH" for dir in "${paths[@]%/}"; do [[ $dir == ?*/@(bin|sbin) ]] && - dirs+=("${dir%/*}/share/bash-completion/completions") + dirs+=("${dir%/*}/share/bash-completion") done # 4) From XDG_DATA_DIRS or system dirs (e.g. /usr/share, /usr/local/share): # Completions in the system data dirs. _comp_split -F : paths "${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" && - dirs+=("${paths[@]/%//bash-completion/completions}") - - # Set up default $IFS in case loaded completions depend on it, - # as well as for $compspec invocation below. - local IFS=$' \t\n' + dirs+=("${paths[@]/%//bash-completion}") # Look up and source shift - local i prefix compspec + local -a source_args=("$@") + + local i prefix for prefix in "" _; do # Regular from all dirs first, then fallbacks - for i in ${!dirs[*]}; do - dir=${dirs[i]} - if [[ ! -d $dir ]]; then - unset -v 'dirs[i]' - continue - fi + for i in "${!dirs[@]}"; do + dir=${dirs[i]}/completions + [[ -d $dir ]] || continue for compfile in "$prefix$cmdname" "$prefix$cmdname.bash"; do - compfile="$dir/$compfile" - # Avoid trying to source dirs as long as we support bash < 4.3 - # to avoid an fd leak; https://bugzilla.redhat.com/903540 - if [[ -d $compfile ]]; then - # Do not warn with . or .. (especially the former is common) - [[ $compfile == */.?(.) ]] || - echo "bash_completion: $compfile: is a directory" >&2 - elif [[ -e $compfile ]] && . "$compfile" "$cmd" "$@"; then - # At least $cmd is expected to have a completion set when - # we return successfully; see if it already does - if compspec=$(complete -p -- "$cmd" 2>/dev/null); then - # $cmd is the case in which we do backslash processing - [[ $backslash ]] && eval "$compspec \"\$backslash\$cmd\"" - # If invoked without path, that one should be set, too - # ...but let's not overwrite an existing one, if any - [[ $origcmd != */* ]] && - ! complete -p -- "$origcmd" &>/dev/null && - eval "$compspec \"\$origcmd\"" - return 0 - fi - # If not, see if we got one for $cmdname - if [[ $cmdname != "$cmd" ]] && compspec=$(complete -p -- "$cmdname" 2>/dev/null); then - # Use that for $cmd too, if we have a full path to it - [[ $cmd == /* ]] && eval "$compspec \"\$cmd\"" - return 0 - fi - # Nothing expected was set, continue lookup - fi + _comp_load__visit_file "$dir/$compfile" && return 0 done done done + _comp_load__visit_file "$_comp__base_directory/completions-core/$cmdname.bash" && return 0 + _comp_load__visit_file "$_comp__base_directory/completions-fallback/$cmdname.bash" && return 0 # Look up simple "xspec" completions [[ -v _comp_xspecs[$cmdname] || -v _xspecs[$cmdname] ]] && diff --git a/completions-core/.gitignore b/completions-core/.gitignore index 8efb4171968..5d93848b15b 100644 --- a/completions-core/.gitignore +++ b/completions-core/.gitignore @@ -1,493 +1,268 @@ -/7za -/7zr -/7zz -/7zzs -/aclocal-1.1[01234567] -/_airflow -/_allero -/_alp -/alpine -/alternatives -/animate -/_ansible -/_ansible-config -/_ansible-console -/_ansible-doc -/_ansible-galaxy -/_ansible-inventory -/_ansible-playbook -/_ansible-pull -/_ansible-vault -/_apko -/apropos -/aptitude-curses -/_aqua -/_arduino-cli -/_argo -/arm-koji -/asciidoc.py -/_asdf -/_atlas -/_atmos -/autoheader -/automake-1.1[01234567] -/autossh -/autoupdate -/avahi-browse-domains -/b2sum -/_bao -/_bashbot -/_black -/_blackd -/bmake -/_bosh -/brave -/brave-browser -/bsdtar -/btdownloadcurses.py -/btdownloadgui.py -/_buf -/c++ -/_caddy -/cc -/cdrecord -/_chamber -/_changie -/_chezmoi -/chrome -/chromium -/ci -/_cilium -/ciptool -/civclient -/civserver -/cksum -/_cloudquery -/_clusterctl -/clzip -/_cmctl -/co -/_colima -/colormake -/compare -/compgen -/composite -/_conda -/_conform -/_conftest -/conjure -/_constellation -/_consul -/_container-structure-test -/_cosign -/cowthink -/_crane -/_crc -/createdb -/createuser -/_crictl -/_ctlptl -/_cue -/_cz -/_dagger -/_dapr -/_dasel -/_datree -/dcop -/_deck -/_deno -/_depot -/_devspace -/dfutool -/_diesel -/_diffoci -/display -/_dlv -/_docker -/dpkg-deb -/dpkg-query -/dpkg-reconfigure -/_dprint -/_driftctl -/dropdb -/dropuser -/_dyff -/edquota -/_esc -/etherwake -/f77 -/f95 -/filebucket -/firefox-esr -/_flask -/_flux -/fprintd-list -/fprintd-verify -/freeciv-gtk2 -/freeciv-gtk3 -/freeciv-sdl -/freeciv-xaw -/fsnotifywait -/fsnotifywatch -/_furyctl -/_fx -/g++ -/g++-[5678] -/g4 -/g77 -/g95 -/_gaiad -/_gardenctl -/gcc-[5678] -/gccgo -/gccgo-[5678] -/gcj -/_gcrane -/geoiplookup6 -/gfortran -/gfortran-[5678] -/_gh-label -/_ghorg -/_git-bump -/_gitconfig -/_gitleaks -/_gitsign -/gkrellm2 -/_glab -/_glances -/_glen -/_glow -/gmake -/gmplayer -/gnumake -/_go-licenses -/_gomarklint -/google-chrome -/google-chrome-stable -/_gopass -/_gopherjs -/_goreleaser -/gpc -/gpgv2 -/_grype -/gssdp-device-sniffer -/gtar -/_gup -/hciattach -/hciconfig -/hd -/_helm -/_helmfile -/host -/_hostctl -/hping -/hping3 -/_httpx -/_hugo -/iceweasel -/identify -/ifdown -/ifquery -/ifstatus -/_ignite -/_imgpkg -/import -/_incus -/_infracost -/inotifywatch -/_insmod.static -/iperf3 -/_istioctl -/javac -/javadoc -/_just -/_jwt -/_k0sctl -/_k3d -/_k3s -/_k3sup -/_k6 -/_k9s -/_kafkactl -/_kapp -/_kata-runtime -/_kconf -/_kind -/_kn -/_ko -/_kompose -/_kool -/_kops -/kplayer -/_krane -/_kratos -/_kubeadm -/_kube-capacity -/_kube-linter -/_kubebuilder -/_kubecm -/_kubectl -/_kubectl-argo-rollouts -/_kubectl-kuttl -/_kubelogin -/_kubemqctl -/_kubescape -/_kubesec -/_kubeshark -/_kubespy -/_kustomize -/_kyverno -/l2ping -/lbzip2 -/ldapadd -/ldapcompare -/ldapdelete -/ldapmodify -/ldapmodrdn -/ldappasswd -/ldapwhoami -/_lefthook -/_limactl -/_linkerd -/links2 -/lintian-info -/lua5[0-4] -/lua5.[0-4] -/luac5[0-4] -/luac5.[0-4] -/lusermod -/lvchange -/lvcreate -/lvdisplay -/lvextend -/lvmdiskscan -/lvreduce -/lvremove -/lvrename -/lvresize -/lvs -/lvscan -/lz4c -/_mado -/mailsnarf -/_mattermost -/md5sum -/mdecrypt -/_melange -/mencoder -/_metalctl -/micropython -/_minikube -/_minishift -/_mise -/mkisofs -/_mmctl -/_mockery -/mogrify -/_moldy -/montage -/mozilla-firefox -/mplayer2 -/mrsasutil -/msgsnarf -/_multi-gitter -/muttng -/ncal -/neomutt -/_nerdctl -/_nfpm -/_ngrok -/_nomad -/_notation -/_nova -/_npm -/_oc -/_odo -/_okteto -/_op -/_opa -/_oras -/_ory -/_packer -/pbzip2 -/pccardctl -/pdlzip -/perldoc -/phing -/pigz -/pinfo -/ping4 -/ping6 -/_pip3 -/_pitchfork -/pkg_deinstall -/pkg_info -/pkgconf -/pkill -/_pluto -/plzip -/pm-suspend -/pm-suspend-hybrid -/pmake -/_pnpm -/_polygon-edge -/_popeye -/postalias -/ppc-koji -/_pulumi -/puppetca -/puppetd -/puppetdoc -/puppetmasterd -/puppetqd -/puppetrun -/pushd -/pvchange -/pvcreate -/pvdisplay -/pvmove -/pvremove -/pvs -/pvscan -/_px -/pxz -/py.test -/py.test-[23] -/pydoc3 -/pydoc3.1[345] -/pylint-[23] -/pypy -/pypy3 -/pyston -/pyston3 -/pytest-[23] -/python2 -/python2.* -/python3 -/python3.* -/pyvenv-3.* -/qemu-kvm -/qemu-system-i386 -/qemu-system-x86_64 -/_qrpc -/quotacheck -/quotaoff -/quotaon -/ralsh -/_random -/_rclone -/rcsdiff -/rdict -/_regal -/_regctl -/repquota -/rfcomm -/rlog -/rpm2targz -/rpm2txz -/rpmbuild -/rpmbuild-md5 -/_rustic -/s390-koji -/sbcl-mt -/scp -/sdptool -/_sentry-cli -/setquota -/sftp -/sha1sum -/sha224sum -/sha384sum -/sha512sum -/shasum -/sidedoor -/_sinker -/_skaffold -/slogin -/_slsa-verifier -/smbcacls -/smbcquotas -/smbget -/smbpasswd -/smbtar -/smbtree -/_sopstool -/_spacectl -/sparc-koji -/spovray -/_sshi -/_ssh-inscribe -/star -/_starship -/_steampipe -/stream -/sudo-rs -/sudo.ws -/sudoedit -/_syft -/_talhelper -/_tanzu -/_tanzu-core -/_tctl -/_tendermint -/_terraform -/_tfctl -/tightvncviewer -/_tilt -/_timoni -/_tkn -/_tkn-pac -/_tldr -/_todoist -/_tofu -/tracepath6 -/_trash -/_trash-empty -/_trash-list -/_trash-put -/_trash-restore -/_trivy -/typeset -/_upctl -/_uv -/_vacuum -/_vela -/_velero -/_venom -/vgcfgbackup -/vgcfgrestore -/vgchange -/vgck -/vgconvert -/vgcreate -/vgdisplay -/vgexport -/vgextend -/vgimport -/vgmerge -/vgmknodes -/vgreduce -/vgremove -/vgrename -/vgs -/vgscan -/vgsplit -/vigr -/_virtctl -/_wasmer-headless -/_watchexec -/_waydroid -/whatis -/wine-development -/wine-stable -/wine64 -/wine64-development -/wine64-stable -/_xc -/xpovray -/xvnc4viewer -/ypcat -/_ytt -/_zarf -/_zitadel -/_zola +/7za.bash +/7zr.bash +/7zz.bash +/7zzs.bash +/aclocal-1.1[01234567].bash +/alpine.bash +/alternatives.bash +/animate.bash +/apropos.bash +/aptitude-curses.bash +/arm-koji.bash +/asciidoc.py.bash +/autoheader.bash +/automake-1.1[01234567].bash +/autossh.bash +/autoupdate.bash +/avahi-browse-domains.bash +/b2sum.bash +/bmake.bash +/brave.bash +/brave-browser.bash +/bsdtar.bash +/btdownloadcurses.py.bash +/btdownloadgui.py.bash +/c++.bash +/cc.bash +/cdrecord.bash +/chrome.bash +/chromium.bash +/ci.bash +/ciptool.bash +/civclient.bash +/civserver.bash +/cksum.bash +/clzip.bash +/co.bash +/colormake.bash +/compare.bash +/compgen.bash +/composite.bash +/conjure.bash +/cowthink.bash +/createdb.bash +/createuser.bash +/dcop.bash +/dfutool.bash +/display.bash +/dpkg-deb.bash +/dpkg-query.bash +/dpkg-reconfigure.bash +/dropdb.bash +/dropuser.bash +/edquota.bash +/etherwake.bash +/f77.bash +/f95.bash +/filebucket.bash +/firefox-esr.bash +/fprintd-list.bash +/fprintd-verify.bash +/freeciv-gtk2.bash +/freeciv-gtk3.bash +/freeciv-sdl.bash +/freeciv-xaw.bash +/fsnotifywait.bash +/fsnotifywatch.bash +/g++.bash +/g++-[5678].bash +/g4.bash +/g77.bash +/g95.bash +/gcc-[5678].bash +/gccgo.bash +/gccgo-[5678].bash +/gcj.bash +/geoiplookup6.bash +/gfortran.bash +/gfortran-[5678].bash +/gkrellm2.bash +/gmake.bash +/gmplayer.bash +/gnumake.bash +/google-chrome.bash +/google-chrome-stable.bash +/gpc.bash +/gpgv2.bash +/gssdp-device-sniffer.bash +/gtar.bash +/hciattach.bash +/hciconfig.bash +/host.bash +/hping.bash +/hping3.bash +/iceweasel.bash +/identify.bash +/ifdown.bash +/ifquery.bash +/ifstatus.bash +/import.bash +/inotifywatch.bash +/iperf3.bash +/javac.bash +/javadoc.bash +/kplayer.bash +/l2ping.bash +/lbzip2.bash +/ldapadd.bash +/ldapcompare.bash +/ldapdelete.bash +/ldapmodify.bash +/ldapmodrdn.bash +/ldappasswd.bash +/ldapwhoami.bash +/links2.bash +/lintian-info.bash +/lua5[0-4].bash +/lua5.[0-4].bash +/luac5[0-4].bash +/luac5.[0-4].bash +/lusermod.bash +/lvchange.bash +/lvcreate.bash +/lvdisplay.bash +/lvextend.bash +/lvmdiskscan.bash +/lvreduce.bash +/lvremove.bash +/lvrename.bash +/lvresize.bash +/lvs.bash +/lvscan.bash +/lz4c.bash +/mailsnarf.bash +/md5sum.bash +/mdecrypt.bash +/mencoder.bash +/micropython.bash +/mkisofs.bash +/mogrify.bash +/montage.bash +/mozilla-firefox.bash +/mplayer2.bash +/mrsasutil.bash +/msgsnarf.bash +/muttng.bash +/neomutt.bash +/pbzip2.bash +/pccardctl.bash +/pdlzip.bash +/perldoc.bash +/phing.bash +/pigz.bash +/pinfo.bash +/ping4.bash +/ping6.bash +/pkg_deinstall.bash +/pkg_info.bash +/pkgconf.bash +/pkill.bash +/plzip.bash +/pm-suspend.bash +/pm-suspend-hybrid.bash +/pmake.bash +/postalias.bash +/ppc-koji.bash +/puppetca.bash +/puppetd.bash +/puppetdoc.bash +/puppetmasterd.bash +/puppetqd.bash +/puppetrun.bash +/pushd.bash +/pvchange.bash +/pvcreate.bash +/pvdisplay.bash +/pvmove.bash +/pvremove.bash +/pvs.bash +/pvscan.bash +/pxz.bash +/py.test.bash +/py.test-[23].bash +/pydoc3.bash +/pydoc3.1[345].bash +/pylint-[23].bash +/pypy.bash +/pypy3.bash +/pyston.bash +/pyston3.bash +/pytest-[23].bash +/python2.bash +/python2.*.bash +/python3.bash +/python3.*.bash +/pyvenv-3.*.bash +/qemu-kvm.bash +/qemu-system-i386.bash +/qemu-system-x86_64.bash +/quotacheck.bash +/quotaoff.bash +/quotaon.bash +/ralsh.bash +/rcsdiff.bash +/rdict.bash +/repquota.bash +/rfcomm.bash +/rlog.bash +/rpm2targz.bash +/rpm2txz.bash +/rpmbuild.bash +/rpmbuild-md5.bash +/s390-koji.bash +/sbcl-mt.bash +/scp.bash +/sdptool.bash +/setquota.bash +/sftp.bash +/sha1sum.bash +/sha224sum.bash +/sha384sum.bash +/sha512sum.bash +/shasum.bash +/sidedoor.bash +/slogin.bash +/smbcacls.bash +/smbcquotas.bash +/smbget.bash +/smbpasswd.bash +/smbtar.bash +/smbtree.bash +/sparc-koji.bash +/spovray.bash +/star.bash +/stream.bash +/sudo-rs.bash +/sudo.ws.bash +/sudoedit.bash +/tightvncviewer.bash +/tracepath6.bash +/typeset.bash +/vgcfgbackup.bash +/vgcfgrestore.bash +/vgchange.bash +/vgck.bash +/vgconvert.bash +/vgcreate.bash +/vgdisplay.bash +/vgexport.bash +/vgextend.bash +/vgimport.bash +/vgmerge.bash +/vgmknodes.bash +/vgreduce.bash +/vgremove.bash +/vgrename.bash +/vgs.bash +/vgscan.bash +/vgsplit.bash +/vigr.bash +/whatis.bash +/wine-development.bash +/wine-stable.bash +/wine64.bash +/wine64-development.bash +/wine64-stable.bash +/xpovray.bash +/xvnc4viewer.bash +/ypcat.bash diff --git a/completions-core/Makefile.am b/completions-core/Makefile.am index da9314fcb44..0d8e46036b9 100644 --- a/completions-core/Makefile.am +++ b/completions-core/Makefile.am @@ -1,531 +1,460 @@ -cross_platform = 2to3 \ - 7z \ - a2x \ - abook \ - aclocal \ - acpi \ - _adb \ - add_members \ - alias \ - ant \ - apache2ctl \ - appdata-validate \ - apt-build \ - apt-cache \ - apt-get \ - apt-mark \ - aptitude \ - arch \ - _argc \ - arp \ - arping \ - arpspoof \ - asciidoc \ - aspell \ - autoconf \ - automake \ - autoreconf \ - autorpm \ - autoscan \ - avahi-browse \ - avctrl \ - badblocks \ - bind \ - bk \ - _bombadil \ - brctl \ - btdownloadheadless.py \ - bts \ - bzip2 \ - _cal \ - cancel \ - cardctl \ - _cargo \ - carton \ - ccache \ - ccze \ - cd \ - cfagent \ - cfrun \ - chage \ - change_pw \ - check_db \ - check_perms \ - checksec \ - chflags \ - _chfn \ - chgrp \ - chkconfig \ - chmod \ - chown \ - chpasswd \ - chromium-browser \ - chronyc \ - chrpath \ - _chsh \ - cksfv \ - cleanarch \ - clisp \ - clone_member \ - _coder \ - complete \ - config_list \ - configure \ - convert \ - cowsay \ - cpan2dist \ - cpio \ - cppcheck \ - crontab \ - cryptsetup \ - curl \ - cvs \ - cvsps \ - dd \ - declare \ - deja-dup \ - _delta \ - desktop-file-validate \ - dhclient \ - dict \ - _dmesg \ - dmypy \ - dnssec-keygen \ - dnsspoof \ - dot \ - dpkg \ - dpkg-source \ - dselect \ - dsniff \ - dumpdb \ - dumpe2fs \ - e2freefrag \ - e2label \ - ebtables \ - ecryptfs-migrate-home \ - _eject \ - env \ - eog \ - ether-wake \ - evince \ - explodepkg \ - export \ - faillog \ - fbgs \ - fbi \ - feh \ - file \ - file-roller \ - filefrag \ - filesnarf \ - find \ - find_member \ - fio \ - firefox \ - flake8 \ - _flamegraph \ - fprintd-delete \ - fprintd-enroll \ - free \ - freeciv \ - freeciv-server \ - function \ - fusermount \ - _gaiacli \ - gcc \ - gcl \ - gdb \ - genaliases \ - gendiff \ - genisoimage \ - geoiplookup \ - getconf \ - getent \ - _gh \ - gkrellm \ - gm \ - gnatmake \ - gnokii \ - gnome-mplayer \ - gnome-screenshot \ - _golangci-lint \ - gpasswd \ - gpg \ - gpg2 \ - gpgv \ - gphoto2 \ - gprof \ - groupadd \ - groupdel \ - groupmems \ - groupmod \ - growisofs \ - grpck \ - _gsctl \ - gssdp-discover \ - gzip \ - hash \ - hcitool \ - hddtemp \ - help \ - _hexdump \ - hid2hci \ - hostname \ - hping2 \ - htop \ - htpasswd \ - hunspell \ - _hwclock \ - iconv \ - id \ - idn \ - ifstat \ - iftop \ - ifup \ - influx \ - info \ - inject \ - inotifywait \ - _insmod \ - installpkg \ - interdiff \ - invoke-rc.d \ - _ionice \ - ip \ - ipcalc \ - iperf \ - ipmitool \ - ipsec \ - iptables \ - ipv6calc \ - iscsiadm \ - isort \ - isql \ - iwconfig \ - iwlist \ - iwpriv \ - iwspy \ - jar \ - jarsigner \ - java \ - javaws \ - _jj \ - jpegoptim \ - jps \ - jq \ - jshint \ - json_xs \ - jsonschema \ - _jungle \ - k3b \ - kcov \ - _keyring \ - kill \ - killall \ - koji \ - _kontena \ - ktutil \ - larch \ - lastlog \ - ldapsearch \ - ldapvi \ - lftp \ - lftpget \ - lilo \ - links \ - lintian \ - lisp \ - list_admins \ - list_lists \ - list_members \ - list_owners \ - locale-gen \ - _look \ - lpq \ - lpr \ - lrzip \ - lsof \ - lsscsi \ - lsusb \ - lua \ - luac \ - luseradd \ - luserdel \ - lvm \ - lz4 \ - lzip \ - lzma \ - lzop \ - macof \ - mailmanctl \ - make \ - makepkg \ - man \ - mc \ - mcrypt \ - mdadm \ - _mdbook \ - mdtool \ - medusa \ - mfiutil \ - mii-diag \ - mii-tool \ - minicom \ - mkinitrd \ - mktemp \ - mmsitepass \ - _mock \ - _modinfo \ - _modprobe \ - _modules \ - monodevelop \ - _mount \ - _mount.linux \ - mplayer \ - mr \ - msynctool \ - _mtr \ - mtx \ - munindoc \ - munin-node-configure \ - munin-run \ - munin-update \ - mussh \ - mutt \ - mypy \ - mysql \ - mysqladmin \ - nc \ - ncftp \ - nethogs \ - _newgrp \ - newlist \ - newusers \ - ngrep \ - nload \ - nmap \ - _nmcli \ - _nox \ - nproc \ - nslookup \ - nsupdate \ - ntpdate \ - _nvm \ - oggdec \ - openssl \ - opera \ - optipng \ - p4 \ - pack200 \ - passwd \ - patch \ - pdftoppm \ - pdftotext \ - perl \ - perlcritic \ - perltidy \ - pgrep \ - pidof \ - pine \ - ping \ - _pip \ - _pipenv \ - pkg-config \ - pkg-get \ - pkgadd \ - pkgrm \ - pkgtool \ - plague-client \ - pm-hibernate \ - pm-is-supported \ - pm-powersave \ - pngfix \ - postcat \ - postconf \ - postfix \ - postmap \ - postsuper \ - povray \ - prelink \ - printenv \ - protoc \ - ps \ - psql \ - puppet \ - pv \ - pwck \ - pwd \ - pwdx \ - pwgen \ - pycodestyle \ - pydoc \ - pydocstyle \ - pyflakes \ - pylint \ - pytest \ - python \ - pyvenv \ - qdbus \ - qemu \ - qrunner \ - querybts \ - quota \ - radvdump \ - rcs \ - rdesktop \ - remove_members \ - removepkg \ - _renice \ - _repomanage \ - reportbug \ - _reptyr \ - resolvconf \ - _rfkill \ - _rg \ - ri \ - rmlist \ - _rmmod \ - route \ - rpcdebug \ - rpm \ - rpm2tgz \ - rpmcheck \ - rrdtool \ - rsync \ - _rtcwake \ - _ruff \ - _runuser \ - _rustup \ - sbcl \ - sbopkg \ - screen \ - scrub \ - _secret-tool \ - set \ - sh \ - sha256sum \ - shellcheck \ - _shtab \ - sitecopy \ - slabtop \ - _slackpkg \ - slapt-get \ - slapt-src \ - smartctl \ - smbclient \ - snownews \ - _sops \ - sqlite3 \ - ss \ - ssh \ - ssh-add \ - ssh-copy-id \ - ssh-keygen \ - ssh-keyscan \ - sshfs \ - sshmitm \ - sshow \ - _stern \ - strace \ - strings \ - _stripe \ - _su \ - sudo \ - svcadm \ - svk \ - _svn \ - _svnadmin \ - _svnlook \ - sync_members \ - synclient \ - sysbench \ - sysctl \ - tar \ - _task \ - tcpdump \ - tcpkill \ - tcpnice \ - timeout \ - tipc \ - tmux \ - _tokio-console \ - tox \ - tracepath \ - tree \ - truncate \ - tshark \ - tsig-keygen \ - tune2fs \ - _udevadm \ - ulimit \ - _umount \ - _umount.linux \ - unace \ - unpack200 \ - unrar \ - unshunt \ - update-alternatives \ - update-rc.d \ - upgradepkg \ - urlsnarf \ - useradd \ - userdel \ - usermod \ - _uvx \ - valgrind \ - _vault \ - vipw \ - vmstat \ - vncviewer \ - vpnc \ - _wasmer \ - watch \ - webmitm \ - wget \ - wine \ - withlist \ - wodim \ - wol \ - _write \ - wsimport \ - wtf \ - wvdial \ - xdg-mime \ - xdg-settings \ - xev \ - xfreerdp \ - xgamma \ - xhost \ - _xm \ - xmllint \ - xmlwf \ - xmms \ - xmodmap \ - xrandr \ - xrdb \ - xsltproc \ - xvfb-run \ - xxd \ - xz \ - xzdec \ - ypmatch \ - _yq \ - _yum \ - yum-arch \ - zopfli \ - zopflipng +cross_platform = 2to3.bash \ + 7z.bash \ + a2x.bash \ + abook.bash \ + aclocal.bash \ + acpi.bash \ + add_members.bash \ + alias.bash \ + ant.bash \ + apache2ctl.bash \ + appdata-validate.bash \ + apt-build.bash \ + apt-cache.bash \ + apt-get.bash \ + apt-mark.bash \ + aptitude.bash \ + arch.bash \ + arp.bash \ + arping.bash \ + arpspoof.bash \ + asciidoc.bash \ + aspell.bash \ + autoconf.bash \ + automake.bash \ + autoreconf.bash \ + autorpm.bash \ + autoscan.bash \ + avahi-browse.bash \ + avctrl.bash \ + badblocks.bash \ + bind.bash \ + bk.bash \ + brctl.bash \ + btdownloadheadless.py.bash \ + bts.bash \ + bzip2.bash \ + cancel.bash \ + cardctl.bash \ + carton.bash \ + ccache.bash \ + ccze.bash \ + cd.bash \ + cfagent.bash \ + cfrun.bash \ + chage.bash \ + change_pw.bash \ + check_db.bash \ + check_perms.bash \ + checksec.bash \ + chflags.bash \ + chgrp.bash \ + chkconfig.bash \ + chmod.bash \ + chown.bash \ + chpasswd.bash \ + chromium-browser.bash \ + chronyc.bash \ + chrpath.bash \ + cksfv.bash \ + cleanarch.bash \ + clisp.bash \ + clone_member.bash \ + complete.bash \ + config_list.bash \ + configure.bash \ + convert.bash \ + cowsay.bash \ + cpan2dist.bash \ + cpio.bash \ + cppcheck.bash \ + crontab.bash \ + cryptsetup.bash \ + curl.bash \ + cvs.bash \ + cvsps.bash \ + dd.bash \ + declare.bash \ + deja-dup.bash \ + desktop-file-validate.bash \ + dhclient.bash \ + dict.bash \ + dmypy.bash \ + dnssec-keygen.bash \ + dnsspoof.bash \ + dot.bash \ + dpkg.bash \ + dpkg-source.bash \ + dselect.bash \ + dsniff.bash \ + dumpdb.bash \ + dumpe2fs.bash \ + e2freefrag.bash \ + e2label.bash \ + ebtables.bash \ + ecryptfs-migrate-home.bash \ + env.bash \ + eog.bash \ + ether-wake.bash \ + evince.bash \ + explodepkg.bash \ + export.bash \ + faillog.bash \ + fbgs.bash \ + fbi.bash \ + feh.bash \ + file.bash \ + file-roller.bash \ + filefrag.bash \ + filesnarf.bash \ + find.bash \ + find_member.bash \ + fio.bash \ + firefox.bash \ + flake8.bash \ + fprintd-delete.bash \ + fprintd-enroll.bash \ + free.bash \ + freeciv.bash \ + freeciv-server.bash \ + function.bash \ + fusermount.bash \ + gcc.bash \ + gcl.bash \ + gdb.bash \ + genaliases.bash \ + gendiff.bash \ + genisoimage.bash \ + geoiplookup.bash \ + getconf.bash \ + getent.bash \ + gkrellm.bash \ + gm.bash \ + gnatmake.bash \ + gnokii.bash \ + gnome-mplayer.bash \ + gnome-screenshot.bash \ + gpasswd.bash \ + gpg.bash \ + gpg2.bash \ + gpgv.bash \ + gphoto2.bash \ + gprof.bash \ + groupadd.bash \ + groupdel.bash \ + groupmems.bash \ + groupmod.bash \ + growisofs.bash \ + grpck.bash \ + gssdp-discover.bash \ + gzip.bash \ + hash.bash \ + hcitool.bash \ + hddtemp.bash \ + help.bash \ + hid2hci.bash \ + hostname.bash \ + hping2.bash \ + htop.bash \ + htpasswd.bash \ + hunspell.bash \ + iconv.bash \ + id.bash \ + idn.bash \ + ifstat.bash \ + iftop.bash \ + ifup.bash \ + influx.bash \ + info.bash \ + inject.bash \ + inotifywait.bash \ + installpkg.bash \ + interdiff.bash \ + invoke-rc.d.bash \ + ip.bash \ + ipcalc.bash \ + iperf.bash \ + ipmitool.bash \ + ipsec.bash \ + iptables.bash \ + ipv6calc.bash \ + iscsiadm.bash \ + isort.bash \ + isql.bash \ + iwconfig.bash \ + iwlist.bash \ + iwpriv.bash \ + iwspy.bash \ + jar.bash \ + jarsigner.bash \ + java.bash \ + javaws.bash \ + jpegoptim.bash \ + jps.bash \ + jq.bash \ + jshint.bash \ + json_xs.bash \ + jsonschema.bash \ + k3b.bash \ + kcov.bash \ + kill.bash \ + killall.bash \ + koji.bash \ + ktutil.bash \ + larch.bash \ + lastlog.bash \ + ldapsearch.bash \ + ldapvi.bash \ + lftp.bash \ + lftpget.bash \ + lilo.bash \ + links.bash \ + lintian.bash \ + lisp.bash \ + list_admins.bash \ + list_lists.bash \ + list_members.bash \ + list_owners.bash \ + locale-gen.bash \ + lpq.bash \ + lpr.bash \ + lrzip.bash \ + lsof.bash \ + lsscsi.bash \ + lsusb.bash \ + lua.bash \ + luac.bash \ + luseradd.bash \ + luserdel.bash \ + lvm.bash \ + lz4.bash \ + lzip.bash \ + lzma.bash \ + lzop.bash \ + macof.bash \ + mailmanctl.bash \ + make.bash \ + makepkg.bash \ + man.bash \ + mc.bash \ + mcrypt.bash \ + mdadm.bash \ + mdtool.bash \ + medusa.bash \ + mfiutil.bash \ + mii-diag.bash \ + mii-tool.bash \ + minicom.bash \ + mkinitrd.bash \ + mktemp.bash \ + mmsitepass.bash \ + monodevelop.bash \ + mplayer.bash \ + mr.bash \ + msynctool.bash \ + mtx.bash \ + munindoc.bash \ + munin-node-configure.bash \ + munin-run.bash \ + munin-update.bash \ + mussh.bash \ + mutt.bash \ + mypy.bash \ + mysql.bash \ + mysqladmin.bash \ + nc.bash \ + ncftp.bash \ + nethogs.bash \ + newlist.bash \ + newusers.bash \ + ngrep.bash \ + nload.bash \ + nmap.bash \ + nproc.bash \ + nslookup.bash \ + nsupdate.bash \ + ntpdate.bash \ + oggdec.bash \ + openssl.bash \ + opera.bash \ + optipng.bash \ + p4.bash \ + pack200.bash \ + passwd.bash \ + patch.bash \ + pdftoppm.bash \ + pdftotext.bash \ + perl.bash \ + perlcritic.bash \ + perltidy.bash \ + pgrep.bash \ + pidof.bash \ + pine.bash \ + ping.bash \ + pkg-config.bash \ + pkg-get.bash \ + pkgadd.bash \ + pkgrm.bash \ + pkgtool.bash \ + plague-client.bash \ + pm-hibernate.bash \ + pm-is-supported.bash \ + pm-powersave.bash \ + pngfix.bash \ + postcat.bash \ + postconf.bash \ + postfix.bash \ + postmap.bash \ + postsuper.bash \ + povray.bash \ + prelink.bash \ + printenv.bash \ + protoc.bash \ + ps.bash \ + psql.bash \ + puppet.bash \ + pv.bash \ + pwck.bash \ + pwd.bash \ + pwdx.bash \ + pwgen.bash \ + pycodestyle.bash \ + pydoc.bash \ + pydocstyle.bash \ + pyflakes.bash \ + pylint.bash \ + pytest.bash \ + python.bash \ + pyvenv.bash \ + qdbus.bash \ + qemu.bash \ + qrunner.bash \ + querybts.bash \ + quota.bash \ + radvdump.bash \ + rcs.bash \ + rdesktop.bash \ + remove_members.bash \ + removepkg.bash \ + reportbug.bash \ + resolvconf.bash \ + ri.bash \ + rmlist.bash \ + route.bash \ + rpcdebug.bash \ + rpm.bash \ + rpm2tgz.bash \ + rpmcheck.bash \ + rrdtool.bash \ + rsync.bash \ + sbcl.bash \ + sbopkg.bash \ + screen.bash \ + scrub.bash \ + set.bash \ + sh.bash \ + sha256sum.bash \ + shellcheck.bash \ + sitecopy.bash \ + slabtop.bash \ + slapt-get.bash \ + slapt-src.bash \ + smartctl.bash \ + smbclient.bash \ + snownews.bash \ + sqlite3.bash \ + ss.bash \ + ssh.bash \ + ssh-add.bash \ + ssh-copy-id.bash \ + ssh-keygen.bash \ + ssh-keyscan.bash \ + sshfs.bash \ + sshmitm.bash \ + sshow.bash \ + strace.bash \ + strings.bash \ + sudo.bash \ + svcadm.bash \ + svk.bash \ + sync_members.bash \ + synclient.bash \ + sysbench.bash \ + sysctl.bash \ + tar.bash \ + tcpdump.bash \ + tcpkill.bash \ + tcpnice.bash \ + timeout.bash \ + tipc.bash \ + tmux.bash \ + tox.bash \ + tracepath.bash \ + tree.bash \ + truncate.bash \ + tshark.bash \ + tsig-keygen.bash \ + tune2fs.bash \ + ulimit.bash \ + unace.bash \ + unpack200.bash \ + unrar.bash \ + unshunt.bash \ + update-alternatives.bash \ + update-rc.d.bash \ + upgradepkg.bash \ + urlsnarf.bash \ + useradd.bash \ + userdel.bash \ + usermod.bash \ + valgrind.bash \ + vipw.bash \ + vmstat.bash \ + vncviewer.bash \ + vpnc.bash \ + watch.bash \ + webmitm.bash \ + wget.bash \ + wine.bash \ + withlist.bash \ + wodim.bash \ + wol.bash \ + wsimport.bash \ + wtf.bash \ + wvdial.bash \ + xdg-mime.bash \ + xdg-settings.bash \ + xev.bash \ + xfreerdp.bash \ + xgamma.bash \ + xhost.bash \ + xmllint.bash \ + xmlwf.bash \ + xmms.bash \ + xmodmap.bash \ + xrandr.bash \ + xrdb.bash \ + xsltproc.bash \ + xvfb-run.bash \ + xxd.bash \ + xz.bash \ + xzdec.bash \ + ypmatch.bash \ + yum-arch.bash \ + zopfli.bash \ + zopflipng.bash -solaris_extra = pkgutil +solaris_extra = pkgutil.bash -bsd_extra = pkg_delete +bsd_extra = pkg_delete.bash freebsd_extra = \ - freebsd-update \ - kldload \ - kldunload \ - portinstall \ - portsnap \ - portupgrade + freebsd-update.bash \ + kldload.bash \ + kldunload.bash \ + portinstall.bash \ + portsnap.bash \ + portupgrade.bash # We include all the files in the tarball EXTRA_DIST = $(cross_platform) \ @@ -533,584 +462,361 @@ EXTRA_DIST = $(cross_platform) \ $(bsd_extra) \ $(freebsd_extra) -bashcompdir = $(datadir)/$(PACKAGE)/completions -bashcomp_DATA = $(cross_platform) +bashcompcoredir = $(datadir)/$(PACKAGE)/completions-core +bashcompcore_DATA = $(cross_platform) # We add only the completions that are relevant for the current platform we're # installing on. if SOLARIS -bashcomp_DATA += $(solaris_extra) +bashcompcore_DATA += $(solaris_extra) endif if BSD -bashcomp_DATA += $(bsd_extra) +bashcompcore_DATA += $(bsd_extra) endif if FREEBSD -bashcomp_DATA += $(freebsd_extra) +bashcompcore_DATA += $(freebsd_extra) endif CLEANFILES = \ - 7za \ - 7zr \ - 7zz \ - 7zzs \ - aclocal-1.10 \ - aclocal-1.11 \ - aclocal-1.12 \ - aclocal-1.13 \ - aclocal-1.14 \ - aclocal-1.15 \ - aclocal-1.16 \ - aclocal-1.17 \ - _airflow \ - _allero \ - _alp \ - alpine \ - alternatives \ - animate \ - _ansible \ - _ansible-config \ - _ansible-console \ - _ansible-doc \ - _ansible-galaxy \ - _ansible-inventory \ - _ansible-playbook \ - _ansible-pull \ - _ansible-vault \ - _apko \ - apropos \ - aptitude-curses \ - _aqua \ - _arduino-cli \ - _argo \ - arm-koji \ - asciidoc.py \ - _asdf \ - _atlas \ - _atmos \ - autoheader \ - automake-1.10 \ - automake-1.11 \ - automake-1.12 \ - automake-1.13 \ - automake-1.14 \ - automake-1.15 \ - automake-1.16 \ - automake-1.17 \ - autossh \ - autoupdate \ - avahi-browse-domains \ - b2sum \ - _bao \ - _bashbot \ - _black \ - _blackd \ - bmake \ - _bosh \ - brave \ - brave-browser \ - bsdtar \ - btdownloadcurses.py \ - btdownloadgui.py \ - _buf \ - c++ \ - _caddy \ - cc \ - cdrecord \ - _chamber \ - _changie \ - _chezmoi \ - chrome \ - chromium \ - ci \ - _cilium \ - ciptool \ - civclient \ - civserver \ - cksum \ - _cloudquery \ - _clusterctl \ - clzip \ - _cmctl \ - co \ - _colima \ - colormake \ - compare \ - compgen \ - composite \ - _conda \ - _conform \ - _conftest \ - conjure \ - _constellation \ - _consul \ - _container-structure-test \ - _cosign \ - cowthink \ - _crane \ - _crc \ - createdb \ - createuser \ - _crictl \ - _ctlptl \ - _cue \ - _cz \ - _dagger \ - _dapr \ - _dasel \ - _datree \ - dcop \ - _deck \ - _deno \ - _depot \ - _devspace \ - dfutool \ - _diffoci \ - _diesel \ - display \ - _dlv \ - _docker \ - dpkg-deb \ - dpkg-query \ - dpkg-reconfigure \ - _dprint \ - _driftctl \ - dropdb \ - dropuser \ - _dyff \ - edquota \ - _esc \ - etherwake \ - f77 \ - f95 \ - filebucket \ - firefox-esr \ - _flask \ - _flux \ - fprintd-list \ - fprintd-verify \ - freeciv-gtk2 \ - freeciv-gtk3 \ - freeciv-sdl \ - freeciv-xaw \ - fsnotifywait \ - fsnotifywatch \ - _furyctl \ - _fx \ - g++ \ - g++-5 \ - g++-6 \ - g++-7 \ - g++-8 \ - g4 \ - g77 \ - g95 \ - _gaiad \ - _gardenctl \ - gcc-5 \ - gcc-6 \ - gcc-7 \ - gcc-8 \ - gccgo \ - gccgo-5 \ - gccgo-6 \ - gccgo-7 \ - gccgo-8 \ - gcj \ - _gcrane \ - geoiplookup6 \ - gfortran \ - gfortran-5 \ - gfortran-6 \ - gfortran-7 \ - gfortran-8 \ - _gh-label \ - _ghorg \ - _git-bump \ - _gitconfig \ - _gitleaks \ - _gitsign \ - gkrellm2 \ - _glab \ - _glances \ - _glen \ - _glow \ - gmake \ - gmplayer \ - gnumake \ - _go-licenses \ - _gomarklint \ - google-chrome \ - google-chrome-stable \ - _gopass \ - _gopherjs \ - _goreleaser \ - gpc \ - gpgv2 \ - _grype \ - gssdp-device-sniffer \ - gtar \ - _gup \ - hciattach \ - hciconfig \ - hd \ - _helm \ - _helmfile \ - host \ - _hostctl \ - hping \ - hping3 \ - _httpx \ - _hugo \ - iceweasel \ - identify \ - ifdown \ - ifquery \ - ifstatus \ - _ignite \ - _imgpkg \ - import \ - _incus \ - _infracost \ - inotifywatch \ - _insmod.static \ - iperf3 \ - _istioctl \ - javac \ - javadoc \ - _just \ - _jwt \ - _k0sctl \ - _k3d \ - _k3s \ - _k3sup \ - _k6 \ - _k9s \ - _kafkactl \ - _kapp \ - _kata-runtime \ - _kconf \ - _kind \ - _kn \ - _ko \ - _kompose \ - _kool \ - _kops \ - kplayer \ - _krane \ - _kratos \ - _kube-capacity \ - _kube-linter \ - _kubeadm \ - _kubebuilder \ - _kubecm \ - _kubectl \ - _kubectl-argo-rollouts \ - _kubectl-kuttl \ - _kubelogin \ - _kubemqctl \ - _kubescape \ - _kubesec \ - _kubeshark \ - _kubespy \ - _kustomize \ - _kyverno \ - l2ping \ - lbzip2 \ - ldapadd \ - ldapcompare \ - ldapdelete \ - ldapmodify \ - ldapmodrdn \ - ldappasswd \ - ldapwhoami \ - _lefthook \ - _limactl \ - _linkerd \ - links2 \ - lintian-info \ - lua50 \ - lua5.0 \ - lua51 \ - lua5.1 \ - lua52 \ - lua5.2 \ - lua53 \ - lua5.3 \ - lua54 \ - lua5.4 \ - luac50 \ - luac5.0 \ - luac51 \ - luac5.1 \ - luac52 \ - luac5.2 \ - luac53 \ - luac5.3 \ - luac54 \ - luac5.4 \ - lusermod \ - lvchange \ - lvcreate \ - lvdisplay \ - lvextend \ - lvmdiskscan \ - lvreduce \ - lvremove \ - lvrename \ - lvresize \ - lvs \ - lvscan \ - lz4c \ - _mado \ - mailsnarf \ - _mattermost \ - md5sum \ - mdecrypt \ - _melange \ - mencoder \ - _metalctl \ - micropython \ - _minikube \ - _minishift \ - _mise \ - mkisofs \ - _mmctl \ - _mockery \ - mogrify \ - _moldy \ - montage \ - mozilla-firefox \ - mplayer2 \ - mrsasutil \ - msgsnarf \ - _multi-gitter \ - muttng \ - ncal \ - neomutt \ - _nerdctl \ - _nfpm \ - _ngrok \ - _nomad \ - _notation \ - _nova \ - _npm \ - _oc \ - _odo \ - _okteto \ - _op \ - _opa \ - _oras \ - _ory \ - _packer \ - pbzip2 \ - pccardctl \ - pdlzip \ - perldoc \ - phing \ - pigz \ - pinfo \ - ping4 \ - ping6 \ - _pip3 \ - _pitchfork \ - pkg_deinstall \ - pkg_info \ - pkgconf \ - pkill \ - _pluto \ - plzip \ - pm-suspend \ - pm-suspend-hybrid \ - pmake \ - _pnpm \ - _polygon-edge \ - _popeye \ - postalias \ - ppc-koji \ - _pulumi \ - puppetca \ - puppetd \ - puppetdoc \ - puppetmasterd \ - puppetqd \ - puppetrun \ - pushd \ - pvchange \ - pvcreate \ - pvdisplay \ - pvmove \ - pvremove \ - pvs \ - pvscan \ - _px \ - pxz \ - py.test \ - py.test-2 \ - py.test-3 \ - pydoc3 \ - pydoc3.13 \ - pydoc3.14 \ - pydoc3.15 \ - pylint-2 \ - pylint-3 \ - pypy \ - pypy3 \ - pyston \ - pyston3 \ - pytest-2 \ - pytest-3 \ - python2 \ - python2.7 \ - python3 \ - python3.3 \ - python3.4 \ - python3.5 \ - python3.6 \ - python3.7 \ - python3.8 \ - python3.9 \ - python3.10 \ - python3.11 \ - python3.12 \ - python3.13 \ - python3.14 \ - python3.15 \ - pyvenv-3.4 \ - pyvenv-3.5 \ - pyvenv-3.6 \ - pyvenv-3.7 \ - pyvenv-3.8 \ - pyvenv-3.9 \ - pyvenv-3.10 \ - pyvenv-3.11 \ - pyvenv-3.12 \ - pyvenv-3.13 \ - pyvenv-3.14 \ - pyvenv-3.15 \ - qemu-kvm \ - qemu-system-i386 \ - qemu-system-x86_64 \ - _qrpc \ - quotacheck \ - quotaoff \ - quotaon \ - ralsh \ - _random \ - _rclone \ - rcsdiff \ - rdict \ - _regal \ - _regctl \ - repquota \ - rfcomm \ - rlog \ - rpm2targz \ - rpm2txz \ - rpmbuild \ - rpmbuild-md5 \ - _rustic \ - s390-koji \ - sbcl-mt \ - scp \ - sdptool \ - _sentry-cli \ - setquota \ - sftp \ - sha1sum \ - sha224sum \ - sha384sum \ - sha512sum \ - shasum \ - sidedoor \ - _sinker \ - _skaffold \ - slogin \ - _slsa-verifier \ - smbcacls \ - smbcquotas \ - smbget \ - smbpasswd \ - smbtar \ - smbtree \ - _sopstool \ - _spacectl \ - sparc-koji \ - spovray \ - _sshi \ - _ssh-inscribe \ - star \ - _starship \ - _steampipe \ - stream \ - sudo-rs \ - sudo.ws \ - sudoedit \ - _syft \ - _talhelper \ - _tanzu \ - _tanzu-core \ - _tctl \ - _tendermint \ - _terraform \ - _tfctl \ - tightvncviewer \ - _tilt \ - _timoni \ - _tkn \ - _tkn-pac \ - _tldr \ - _todoist \ - _tofu \ - tracepath6 \ - _trash \ - _trash-empty \ - _trash-list \ - _trash-put \ - _trash-restore \ - _trivy \ - typeset \ - _upctl \ - _uv \ - _vacuum \ - _vela \ - _velero \ - _venom \ - vgcfgbackup \ - vgcfgrestore \ - vgchange \ - vgck \ - vgconvert \ - vgcreate \ - vgdisplay \ - vgexport \ - vgextend \ - vgimport \ - vgmerge \ - vgmknodes \ - vgreduce \ - vgremove \ - vgrename \ - vgs \ - vgscan \ - vgsplit \ - vigr \ - _virtctl \ - _wasmer-headless \ - _watchexec \ - _waydroid \ - whatis \ - wine-development \ - wine-stable \ - wine64 \ - wine64-development \ - wine64-stable \ - _xc \ - xpovray \ - xvnc4viewer \ - ypcat \ - _ytt \ - _zarf \ - _zitadel \ - _zola + 7za.bash \ + 7zr.bash \ + 7zz.bash \ + 7zzs.bash \ + aclocal-1.10.bash \ + aclocal-1.11.bash \ + aclocal-1.12.bash \ + aclocal-1.13.bash \ + aclocal-1.14.bash \ + aclocal-1.15.bash \ + aclocal-1.16.bash \ + aclocal-1.17.bash \ + alpine.bash \ + alternatives.bash \ + animate.bash \ + apropos.bash \ + aptitude-curses.bash \ + arm-koji.bash \ + asciidoc.py.bash \ + autoheader.bash \ + automake-1.10.bash \ + automake-1.11.bash \ + automake-1.12.bash \ + automake-1.13.bash \ + automake-1.14.bash \ + automake-1.15.bash \ + automake-1.16.bash \ + automake-1.17.bash \ + autossh.bash \ + autoupdate.bash \ + avahi-browse-domains.bash \ + b2sum.bash \ + bmake.bash \ + brave.bash \ + brave-browser.bash \ + bsdtar.bash \ + btdownloadcurses.py.bash \ + btdownloadgui.py.bash \ + c++.bash \ + cc.bash \ + cdrecord.bash \ + chrome.bash \ + chromium.bash \ + ci.bash \ + ciptool.bash \ + civclient.bash \ + civserver.bash \ + cksum.bash \ + clzip.bash \ + co.bash \ + colormake.bash \ + compare.bash \ + compgen.bash \ + composite.bash \ + conjure.bash \ + cowthink.bash \ + createdb.bash \ + createuser.bash \ + dcop.bash \ + dfutool.bash \ + display.bash \ + dpkg-deb.bash \ + dpkg-query.bash \ + dpkg-reconfigure.bash \ + dropdb.bash \ + dropuser.bash \ + edquota.bash \ + etherwake.bash \ + f77.bash \ + f95.bash \ + filebucket.bash \ + firefox-esr.bash \ + fprintd-list.bash \ + fprintd-verify.bash \ + freeciv-gtk2.bash \ + freeciv-gtk3.bash \ + freeciv-sdl.bash \ + freeciv-xaw.bash \ + fsnotifywait.bash \ + fsnotifywatch.bash \ + g++.bash \ + g++-5.bash \ + g++-6.bash \ + g++-7.bash \ + g++-8.bash \ + g4.bash \ + g77.bash \ + g95.bash \ + gcc-5.bash \ + gcc-6.bash \ + gcc-7.bash \ + gcc-8.bash \ + gccgo.bash \ + gccgo-5.bash \ + gccgo-6.bash \ + gccgo-7.bash \ + gccgo-8.bash \ + gcj.bash \ + geoiplookup6.bash \ + gfortran.bash \ + gfortran-5.bash \ + gfortran-6.bash \ + gfortran-7.bash \ + gfortran-8.bash \ + gkrellm2.bash \ + gmake.bash \ + gmplayer.bash \ + gnumake.bash \ + google-chrome.bash \ + google-chrome-stable.bash \ + gpc.bash \ + gpgv2.bash \ + gssdp-device-sniffer.bash \ + gtar.bash \ + hciattach.bash \ + hciconfig.bash \ + hd.bash \ + host.bash \ + hping.bash \ + hping3.bash \ + iceweasel.bash \ + identify.bash \ + ifdown.bash \ + ifquery.bash \ + ifstatus.bash \ + import.bash \ + inotifywatch.bash \ + iperf3.bash \ + javac.bash \ + javadoc.bash \ + kplayer.bash \ + l2ping.bash \ + lbzip2.bash \ + ldapadd.bash \ + ldapcompare.bash \ + ldapdelete.bash \ + ldapmodify.bash \ + ldapmodrdn.bash \ + ldappasswd.bash \ + ldapwhoami.bash \ + links2.bash \ + lintian-info.bash \ + lua5.0.bash \ + lua5.1.bash \ + lua5.2.bash \ + lua5.3.bash \ + lua5.4.bash \ + lua50.bash \ + lua51.bash \ + lua52.bash \ + lua53.bash \ + lua54.bash \ + luac5.0.bash \ + luac5.1.bash \ + luac5.2.bash \ + luac5.3.bash \ + luac5.4.bash \ + luac50.bash \ + luac51.bash \ + luac52.bash \ + luac53.bash \ + luac54.bash \ + lusermod.bash \ + lvchange.bash \ + lvcreate.bash \ + lvdisplay.bash \ + lvextend.bash \ + lvmdiskscan.bash \ + lvreduce.bash \ + lvremove.bash \ + lvrename.bash \ + lvresize.bash \ + lvs.bash \ + lvscan.bash \ + lz4c.bash \ + mailsnarf.bash \ + md5sum.bash \ + mdecrypt.bash \ + mencoder.bash \ + micropython.bash \ + mkisofs.bash \ + mogrify.bash \ + montage.bash \ + mozilla-firefox.bash \ + mplayer2.bash \ + mrsasutil.bash \ + msgsnarf.bash \ + muttng.bash \ + ncal.bash \ + neomutt.bash \ + pbzip2.bash \ + pccardctl.bash \ + pdlzip.bash \ + perldoc.bash \ + phing.bash \ + pigz.bash \ + pinfo.bash \ + ping4.bash \ + ping6.bash \ + pkg_deinstall.bash \ + pkg_info.bash \ + pkgconf.bash \ + pkill.bash \ + plzip.bash \ + pm-suspend.bash \ + pm-suspend-hybrid.bash \ + pmake.bash \ + postalias.bash \ + ppc-koji.bash \ + puppetca.bash \ + puppetd.bash \ + puppetdoc.bash \ + puppetmasterd.bash \ + puppetqd.bash \ + puppetrun.bash \ + pushd.bash \ + pvchange.bash \ + pvcreate.bash \ + pvdisplay.bash \ + pvmove.bash \ + pvremove.bash \ + pvs.bash \ + pvscan.bash \ + pxz.bash \ + py.test.bash \ + py.test-2.bash \ + py.test-3.bash \ + pydoc3.bash \ + pydoc3.13.bash \ + pydoc3.14.bash \ + pydoc3.15.bash \ + pylint-2.bash \ + pylint-3.bash \ + pypy.bash \ + pypy3.bash \ + pyston.bash \ + pyston3.bash \ + pytest-2.bash \ + pytest-3.bash \ + python2.bash \ + python2.7.bash \ + python3.bash \ + python3.3.bash \ + python3.4.bash \ + python3.5.bash \ + python3.6.bash \ + python3.7.bash \ + python3.8.bash \ + python3.9.bash \ + python3.10.bash \ + python3.11.bash \ + python3.12.bash \ + python3.13.bash \ + python3.14.bash \ + python3.15.bash \ + pyvenv-3.4.bash \ + pyvenv-3.5.bash \ + pyvenv-3.6.bash \ + pyvenv-3.7.bash \ + pyvenv-3.8.bash \ + pyvenv-3.9.bash \ + pyvenv-3.10.bash \ + pyvenv-3.11.bash \ + pyvenv-3.12.bash \ + pyvenv-3.13.bash \ + pyvenv-3.14.bash \ + pyvenv-3.15.bash \ + qemu-kvm.bash \ + qemu-system-i386.bash \ + qemu-system-x86_64.bash \ + quotacheck.bash \ + quotaoff.bash \ + quotaon.bash \ + ralsh.bash \ + rcsdiff.bash \ + rdict.bash \ + repquota.bash \ + rfcomm.bash \ + rlog.bash \ + rpm2targz.bash \ + rpm2txz.bash \ + rpmbuild.bash \ + rpmbuild-md5.bash \ + s390-koji.bash \ + sbcl-mt.bash \ + scp.bash \ + sdptool.bash \ + setquota.bash \ + sftp.bash \ + sha1sum.bash \ + sha224sum.bash \ + sha384sum.bash \ + sha512sum.bash \ + shasum.bash \ + sidedoor.bash \ + slogin.bash \ + smbcacls.bash \ + smbcquotas.bash \ + smbget.bash \ + smbpasswd.bash \ + smbtar.bash \ + smbtree.bash \ + sparc-koji.bash \ + spovray.bash \ + star.bash \ + stream.bash \ + sudo-rs.bash \ + sudo.ws.bash \ + sudoedit.bash \ + tightvncviewer.bash \ + tracepath6.bash \ + typeset.bash \ + vgcfgbackup.bash \ + vgcfgrestore.bash \ + vgchange.bash \ + vgck.bash \ + vgconvert.bash \ + vgcreate.bash \ + vgdisplay.bash \ + vgexport.bash \ + vgextend.bash \ + vgimport.bash \ + vgmerge.bash \ + vgmknodes.bash \ + vgreduce.bash \ + vgremove.bash \ + vgrename.bash \ + vgs.bash \ + vgscan.bash \ + vgsplit.bash \ + vigr.bash \ + whatis.bash \ + wine-development.bash \ + wine-stable.bash \ + wine64.bash \ + wine64-development.bash \ + wine64-stable.bash \ + xpovray.bash \ + xvnc4viewer.bash \ + ypcat.bash symlinks: $(DATA) $(ss) 7z \ @@ -1140,8 +846,6 @@ symlinks: $(DATA) btdownloadcurses.py btdownloadgui.py $(ss) bzip2 \ lbzip2 pbzip2 - $(ss) _cal \ - ncal $(ss) cardctl \ pccardctl $(ss) cd \ @@ -1168,9 +872,6 @@ symlinks: $(DATA) mailsnarf msgsnarf $(ss) firefox \ firefox-esr iceweasel mozilla-firefox - $(ss) _flamegraph \ - _just \ - _watchexec $(ss) fprintd-delete \ fprintd-list $(ss) fprintd-enroll \ @@ -1179,12 +880,6 @@ symlinks: $(DATA) civclient freeciv-gtk2 freeciv-gtk3 freeciv-sdl freeciv-xaw $(ss) freeciv-server \ civserver - $(ss) _gaiacli \ - _gaiad \ - _ngrok \ - _npm \ - _sopstool \ - _tendermint $(ss) gcc \ c++ cc f77 f95 g++ g++-5 g++-6 g++-7 g++-8 g77 g95 gcc-5 \ gcc-6 gcc-7 gcc-8 gccgo gccgo-5 gccgo-6 gccgo-7 gccgo-8 gcj \ @@ -1193,180 +888,8 @@ symlinks: $(DATA) mkisofs $(ss) geoiplookup \ geoiplookup6 - $(ss) _gh \ - _glab _infracost $(ss) gkrellm \ gkrellm2 - $(ss) _golangci-lint \ - _allero \ - _alp \ - _apko \ - _aqua \ - _arduino-cli \ - _argo \ - _asdf \ - _atlas \ - _atmos \ - _bashbot \ - _bosh \ - _buf \ - _caddy \ - _chamber \ - _changie \ - _chezmoi \ - _cilium \ - _cloudquery \ - _clusterctl \ - _cmctl \ - _colima \ - _conform \ - _conftest \ - _constellation \ - _container-structure-test \ - _cosign \ - _crane \ - _crc \ - _crictl \ - _ctlptl \ - _cue \ - _dagger \ - _dapr \ - _dasel \ - _datree \ - _deck \ - _depot \ - _devspace \ - _diffoci \ - _dlv \ - _docker \ - _driftctl \ - _dyff \ - _esc \ - _flux \ - _furyctl \ - _gardenctl \ - _gcrane \ - _gh-label \ - _ghorg \ - _git-bump \ - _gitconfig \ - _gitleaks \ - _gitsign \ - _glen \ - _glow \ - _go-licenses \ - _gomarklint \ - _gopass \ - _gopherjs \ - _goreleaser \ - _grype \ - _gup \ - _helm \ - _helmfile \ - _hostctl \ - _hugo \ - _imgpkg \ - _incus \ - _ignite \ - _istioctl \ - _jwt \ - _k0sctl \ - _k3d \ - _k3s \ - _k3sup \ - _k6 \ - _k9s \ - _kafkactl \ - _kapp \ - _kconf \ - _kind \ - _kn \ - _ko \ - _kompose \ - _kool \ - _kops \ - _krane \ - _kratos \ - _kubeadm \ - _kube-capacity \ - _kube-linter \ - _kubebuilder \ - _kubecm \ - _kubectl \ - _kubectl-argo-rollouts \ - _kubectl-kuttl \ - _kubescape \ - _kubelogin \ - _kubemqctl \ - _kubesec \ - _kubeshark \ - _kubespy \ - _kustomize \ - _kyverno \ - _lefthook \ - _limactl \ - _linkerd \ - _mattermost \ - _melange \ - _metalctl \ - _minikube \ - _minishift \ - _mise \ - _mmctl \ - _mockery \ - _moldy \ - _multi-gitter \ - _nerdctl \ - _nfpm \ - _notation \ - _nova \ - _oc \ - _odo \ - _okteto \ - _op \ - _opa \ - _oras \ - _ory \ - _pitchfork \ - _pluto \ - _pnpm \ - _polygon-edge \ - _popeye \ - _pulumi \ - _px \ - _qrpc \ - _random \ - _rclone \ - _regal \ - _regctl \ - _sinker \ - _skaffold \ - _slsa-verifier \ - _spacectl \ - _sshi \ - _ssh-inscribe \ - _steampipe \ - _syft \ - _talhelper \ - _tanzu \ - _tanzu-core \ - _tctl \ - _tfctl \ - _tilt \ - _timoni \ - _tkn \ - _tkn-pac \ - _trivy \ - _upctl \ - _vacuum \ - _vela \ - _velero \ - _venom \ - _virtctl \ - _ytt \ - _zarf \ - _zitadel \ - _zola $(ss) gpgv \ gpgv2 $(ss) gssdp-discover \ @@ -1375,8 +898,6 @@ symlinks: $(DATA) pigz $(ss) hcitool \ ciptool dfutool hciattach hciconfig l2ping rfcomm sdptool - $(ss) _hexdump \ - hd $(ss) hping2 \ hping hping3 $(ss) ifup \ @@ -1385,17 +906,12 @@ symlinks: $(DATA) pinfo $(ss) inotifywait \ inotifywatch fsnotifywait fsnotifywatch - $(ss) _insmod \ - _insmod.static $(ss) iperf \ iperf3 $(ss) java \ javac javadoc $(ss) koji \ arm-koji ppc-koji s390-koji sparc-koji - $(ss) _keyring \ - _glances _tldr _trash _trash-empty _trash-list \ - _trash-put _trash-restore $(ss) ldapsearch \ ldapadd ldapcompare ldapdelete ldapmodify ldapmodrdn \ ldappasswd ldapwhoami @@ -1428,33 +944,12 @@ symlinks: $(DATA) apropos whatis $(ss) mcrypt \ mdecrypt - $(ss) _mdbook \ - _deno \ - _diesel \ - _dprint \ - _rustic \ - _sentry-cli \ - _starship $(ss) mfiutil \ mrsasutil $(ss) mplayer \ gmplayer kplayer mencoder mplayer2 $(ss) mutt \ muttng neomutt - $(ss) _nox \ - _airflow \ - _ansible \ - _ansible-config \ - _ansible-console \ - _ansible-doc \ - _ansible-galaxy \ - _ansible-inventory \ - _ansible-playbook \ - _ansible-pull \ - _ansible-vault \ - _conda \ - _cz \ - _waydroid $(ss) nslookup \ host $(ss) p4 \ @@ -1465,10 +960,6 @@ symlinks: $(DATA) alpine $(ss) ping \ ping4 ping6 - $(ss) _pip \ - _pip3 - $(ss) _pipenv \ - _black _blackd _flask _httpx $(ss) pkg-config \ pkgconf if BSD @@ -1515,17 +1006,12 @@ endif rpmbuild rpmbuild-md5 $(ss) rpm2tgz \ rpm2targz rpm2txz - $(ss) _ruff \ - _mado \ - _uv $(ss) smbclient \ smbcacls smbcquotas smbget smbpasswd smbtar smbtree $(ss) sbcl \ sbcl-mt $(ss) sha256sum \ b2sum cksum md5sum shasum sha1sum sha224sum sha384sum sha512sum - $(ss) _sops \ - _kata-runtime _todoist $(ss) ssh \ autossh scp sftp sidedoor slogin $(ss) sudo \ @@ -1536,21 +1022,10 @@ endif tracepath6 $(ss) update-alternatives \ alternatives - $(ss) _vault \ - _bao \ - _consul \ - _fx \ - _nomad \ - _packer \ - _terraform \ - _tofu \ - _xc $(ss) vipw \ vigr $(ss) vncviewer \ tightvncviewer xvnc4viewer - $(ss) _wasmer \ - _wasmer-headless $(ss) wine \ wine-development wine-stable \ wine64 wine64-development wine64-stable @@ -1567,12 +1042,12 @@ SETUP_SYMLINKS = $(srcdir)/../setup-symlinks.sh all-local: ss = $(SETUP_SYMLINKS) . all-local: symlinks -install-data-hook: ss = $(SETUP_SYMLINKS) $(DESTDIR)$(bashcompdir) +install-data-hook: ss = $(SETUP_SYMLINKS) $(DESTDIR)$(bashcompcoredir) install-data-hook: symlinks check-local: REPLY=0; \ - for file in $(bashcomp_DATA); do \ + for file in $(bashcompcore_DATA); do \ $${bashcomp_bash:-$${BASH:-bash}} \ -O extglob -n $(srcdir)/$$file || REPLY=$$?; \ done; \ diff --git a/completions-core/make.bash b/completions-core/make.bash index 639690b3edf..49df8caed10 100644 --- a/completions-core/make.bash +++ b/completions-core/make.bash @@ -15,7 +15,7 @@ _comp_cmd_make__extract_targets() [[ $mode == -d && $prefix == */* ]] && prefix_replace=${prefix##*/} - _comp_awk -f "${BASH_SOURCE[0]%/*}/../helpers/make-extract-targets.awk" + _comp_awk -f "${BASH_SOURCE[0]%/*}/../helpers-core/make-extract-targets.awk" } # Truncate the non-unique filepaths in COMPREPLY to only generate unique diff --git a/completions-core/perl.bash b/completions-core/perl.bash index ee852f182e0..d095b210c1c 100644 --- a/completions-core/perl.bash +++ b/completions-core/perl.bash @@ -3,7 +3,7 @@ _comp_cmd_perl__helper() { _comp_compgen_split -P "$prefix" -- "$("${1:-perl}" \ - "${BASH_SOURCE[0]%/*}/../helpers/perl" "$2" "$cur")" + "${BASH_SOURCE[0]%/*}/../helpers-core/perl" "$2" "$cur")" [[ $2 == functions ]] || _comp_ltrim_colon_completions "$prefix$cur" } diff --git a/completions-core/python.bash b/completions-core/python.bash index 83bfedd8323..fbd564544f2 100644 --- a/completions-core/python.bash +++ b/completions-core/python.bash @@ -17,7 +17,7 @@ _python_modules() _comp_cmd_python__compgen_modules() { _comp_compgen_split -- "$("$1" \ - "${BASH_SOURCE[0]%/*}/../helpers/python" "$cur" 2>/dev/null)" + "${BASH_SOURCE[0]%/*}/../helpers-core/python" "$cur" 2>/dev/null)" } # @since 2.12 diff --git a/completions-fallback/.gitignore b/completions-fallback/.gitignore new file mode 100644 index 00000000000..d76ad835a23 --- /dev/null +++ b/completions-fallback/.gitignore @@ -0,0 +1,225 @@ +/airflow.bash +/allero.bash +/alp.bash +/ansible.bash +/ansible-config.bash +/ansible-console.bash +/ansible-doc.bash +/ansible-galaxy.bash +/ansible-inventory.bash +/ansible-playbook.bash +/ansible-pull.bash +/ansible-vault.bash +/apko.bash +/aqua.bash +/arduino-cli.bash +/argo.bash +/asdf.bash +/atlas.bash +/atmos.bash +/bao.bash +/bashbot.bash +/black.bash +/blackd.bash +/bosh.bash +/buf.bash +/caddy.bash +/chamber.bash +/changie.bash +/chezmoi.bash +/cilium.bash +/cloudquery.bash +/clusterctl.bash +/cmctl.bash +/colima.bash +/conda.bash +/conform.bash +/conftest.bash +/constellation.bash +/consul.bash +/container-structure-test.bash +/cosign.bash +/crane.bash +/crc.bash +/crictl.bash +/ctlptl.bash +/cue.bash +/cz.bash +/dagger.bash +/dapr.bash +/dasel.bash +/datree.bash +/deck.bash +/deno.bash +/depot.bash +/devspace.bash +/diesel.bash +/diffoci.bash +/dlv.bash +/docker.bash +/dprint.bash +/driftctl.bash +/dyff.bash +/esc.bash +/flask.bash +/flux.bash +/furyctl.bash +/fx.bash +/gaiad.bash +/gardenctl.bash +/gcrane.bash +/gh-label.bash +/ghorg.bash +/git-bump.bash +/gitconfig.bash +/gitleaks.bash +/gitsign.bash +/glab.bash +/glances.bash +/glen.bash +/glow.bash +/go-licenses.bash +/gomarklint.bash +/gopass.bash +/gopherjs.bash +/goreleaser.bash +/grype.bash +/gup.bash +/hd.bash +/helm.bash +/helmfile.bash +/hostctl.bash +/httpx.bash +/hugo.bash +/ignite.bash +/imgpkg.bash +/incus.bash +/infracost.bash +/insmod.static.bash +/istioctl.bash +/just.bash +/jwt.bash +/k0sctl.bash +/k3d.bash +/k3s.bash +/k3sup.bash +/k6.bash +/k9s.bash +/kafkactl.bash +/kapp.bash +/kata-runtime.bash +/kconf.bash +/kind.bash +/kn.bash +/ko.bash +/kompose.bash +/kool.bash +/kops.bash +/krane.bash +/kratos.bash +/kubeadm.bash +/kube-capacity.bash +/kube-linter.bash +/kubebuilder.bash +/kubecm.bash +/kubectl.bash +/kubectl-argo-rollouts.bash +/kubectl-kuttl.bash +/kubelogin.bash +/kubemqctl.bash +/kubescape.bash +/kubesec.bash +/kubeshark.bash +/kubespy.bash +/kustomize.bash +/kyverno.bash +/lefthook.bash +/limactl.bash +/linkerd.bash +/mado.bash +/mattermost.bash +/melange.bash +/metalctl.bash +/minikube.bash +/minishift.bash +/mise.bash +/mmctl.bash +/mockery.bash +/moldy.bash +/multi-gitter.bash +/ncal.bash +/nerdctl.bash +/nfpm.bash +/ngrok.bash +/nomad.bash +/notation.bash +/nova.bash +/npm.bash +/oc.bash +/odo.bash +/okteto.bash +/op.bash +/opa.bash +/oras.bash +/ory.bash +/packer.bash +/pip3.bash +/pitchfork.bash +/pluto.bash +/pnpm.bash +/polygon-edge.bash +/popeye.bash +/pulumi.bash +/px.bash +/qrpc.bash +/random.bash +/rclone.bash +/regal.bash +/regctl.bash +/rustic.bash +/sentry-cli.bash +/sinker.bash +/skaffold.bash +/slsa-verifier.bash +/sopstool.bash +/spacectl.bash +/sshi.bash +/ssh-inscribe.bash +/starship.bash +/steampipe.bash +/syft.bash +/talhelper.bash +/tanzu.bash +/tanzu-core.bash +/tctl.bash +/tendermint.bash +/terraform.bash +/tfctl.bash +/tilt.bash +/timoni.bash +/tkn.bash +/tkn-pac.bash +/tldr.bash +/todoist.bash +/tofu.bash +/trash.bash +/trash-empty.bash +/trash-list.bash +/trash-put.bash +/trash-restore.bash +/trivy.bash +/upctl.bash +/uv.bash +/vacuum.bash +/vela.bash +/velero.bash +/venom.bash +/virtctl.bash +/wasmer-headless.bash +/watchexec.bash +/waydroid.bash +/xc.bash +/ytt.bash +/zarf.bash +/zitadel.bash +/zola.bash diff --git a/completions-fallback/Makefile.am b/completions-fallback/Makefile.am new file mode 100644 index 00000000000..855c8ebd6f0 --- /dev/null +++ b/completions-fallback/Makefile.am @@ -0,0 +1,552 @@ +cross_platform = adb.bash \ + argc.bash \ + bombadil.bash \ + cal.bash \ + cargo.bash \ + chfn.bash \ + chsh.bash \ + coder.bash \ + delta.bash \ + dmesg.bash \ + eject.bash \ + flamegraph.bash \ + gaiacli.bash \ + gh.bash \ + golangci-lint.bash \ + gsctl.bash \ + hexdump.bash \ + hwclock.bash \ + insmod.bash \ + ionice.bash \ + jj.bash \ + jungle.bash \ + keyring.bash \ + kontena.bash \ + look.bash \ + mdbook.bash \ + mock.bash \ + modinfo.bash \ + modprobe.bash \ + modules.bash \ + mount.bash \ + mount.linux.bash \ + mtr.bash \ + newgrp.bash \ + nmcli.bash \ + nox.bash \ + nvm.bash \ + pip.bash \ + pipenv.bash \ + renice.bash \ + repomanage.bash \ + reptyr.bash \ + rfkill.bash \ + rg.bash \ + rmmod.bash \ + rtcwake.bash \ + ruff.bash \ + runuser.bash \ + rustup.bash \ + secret-tool.bash \ + shtab.bash \ + slackpkg.bash \ + sops.bash \ + stern.bash \ + stripe.bash \ + su.bash \ + svn.bash \ + svnadmin.bash \ + svnlook.bash \ + task.bash \ + tokio-console.bash \ + udevadm.bash \ + umount.bash \ + umount.linux.bash \ + uvx.bash \ + vault.bash \ + wasmer.bash \ + write.bash \ + xm.bash \ + yq.bash \ + yum.bash + +# We include all the files in the tarball +EXTRA_DIST = $(cross_platform) + +bashcompfallbackdir = $(datadir)/$(PACKAGE)/completions-fallback +bashcompfallback_DATA = $(cross_platform) + +CLEANFILES = \ + airflow.bash \ + allero.bash \ + alp.bash \ + ansible.bash \ + ansible-config.bash \ + ansible-console.bash \ + ansible-doc.bash \ + ansible-galaxy.bash \ + ansible-inventory.bash \ + ansible-playbook.bash \ + ansible-pull.bash \ + ansible-vault.bash \ + apko.bash \ + aqua.bash \ + arduino-cli.bash \ + argo.bash \ + asdf.bash \ + atlas.bash \ + atmos.bash \ + bao.bash \ + bashbot.bash \ + black.bash \ + blackd.bash \ + bosh.bash \ + buf.bash \ + caddy.bash \ + chamber.bash \ + changie.bash \ + chezmoi.bash \ + cilium.bash \ + cloudquery.bash \ + clusterctl.bash \ + cmctl.bash \ + colima.bash \ + conda.bash \ + conform.bash \ + conftest.bash \ + constellation.bash \ + consul.bash \ + container-structure-test.bash \ + cosign.bash \ + crane.bash \ + crc.bash \ + crictl.bash \ + ctlptl.bash \ + cue.bash \ + cz.bash \ + dagger.bash \ + dapr.bash \ + dasel.bash \ + datree.bash \ + deck.bash \ + deno.bash \ + depot.bash \ + devspace.bash \ + diesel.bash \ + diffoci.bash \ + dlv.bash \ + docker.bash \ + dprint.bash \ + driftctl.bash \ + dyff.bash \ + esc.bash \ + flask.bash \ + flux.bash \ + furyctl.bash \ + fx.bash \ + gaiad.bash \ + gardenctl.bash \ + gcrane.bash \ + gh-label.bash \ + ghorg.bash \ + git-bump.bash \ + gitconfig.bash \ + gitleaks.bash \ + gitsign.bash \ + glab.bash \ + glances.bash \ + glen.bash \ + glow.bash \ + go-licenses.bash \ + gomarklint.bash \ + gopass.bash \ + gopherjs.bash \ + goreleaser.bash \ + grype.bash \ + gup.bash \ + helm.bash \ + helmfile.bash \ + hostctl.bash \ + httpx.bash \ + hugo.bash \ + ignite.bash \ + imgpkg.bash \ + incus.bash \ + infracost.bash \ + insmod.static.bash \ + istioctl.bash \ + just.bash \ + jwt.bash \ + k0sctl.bash \ + k3d.bash \ + k3s.bash \ + k3sup.bash \ + k6.bash \ + k9s.bash \ + kafkactl.bash \ + kapp.bash \ + kata-runtime.bash \ + kconf.bash \ + kind.bash \ + kn.bash \ + ko.bash \ + kompose.bash \ + kool.bash \ + kops.bash \ + krane.bash \ + kratos.bash \ + kube-capacity.bash \ + kube-linter.bash \ + kubeadm.bash \ + kubebuilder.bash \ + kubecm.bash \ + kubectl.bash \ + kubectl-argo-rollouts.bash \ + kubectl-kuttl.bash \ + kubelogin.bash \ + kubemqctl.bash \ + kubescape.bash \ + kubesec.bash \ + kubeshark.bash \ + kubespy.bash \ + kustomize.bash \ + kyverno.bash \ + lefthook.bash \ + limactl.bash \ + linkerd.bash \ + mado.bash \ + mattermost.bash \ + melange.bash \ + metalctl.bash \ + minikube.bash \ + minishift.bash \ + mise.bash \ + mmctl.bash \ + mockery.bash \ + moldy.bash \ + multi-gitter.bash \ + nerdctl.bash \ + nfpm.bash \ + ngrok.bash \ + nomad.bash \ + notation.bash \ + nova.bash \ + npm.bash \ + oc.bash \ + odo.bash \ + okteto.bash \ + op.bash \ + opa.bash \ + oras.bash \ + ory.bash \ + packer.bash \ + pip3.bash \ + pitchfork.bash \ + pluto.bash \ + pnpm.bash \ + polygon-edge.bash \ + popeye.bash \ + pulumi.bash \ + px.bash \ + qrpc.bash \ + random.bash \ + rclone.bash \ + regal.bash \ + regctl.bash \ + rustic.bash \ + sentry-cli.bash \ + sinker.bash \ + skaffold.bash \ + slsa-verifier.bash \ + sopstool.bash \ + spacectl.bash \ + ssh-inscribe.bash \ + sshi.bash \ + starship.bash \ + steampipe.bash \ + syft.bash \ + talhelper.bash \ + tanzu.bash \ + tanzu-core.bash \ + tctl.bash \ + tendermint.bash \ + terraform.bash \ + tfctl.bash \ + tilt.bash \ + timoni.bash \ + tkn.bash \ + tkn-pac.bash \ + tldr.bash \ + todoist.bash \ + tofu.bash \ + trash.bash \ + trash-empty.bash \ + trash-list.bash \ + trash-put.bash \ + trash-restore.bash \ + trivy.bash \ + upctl.bash \ + uv.bash \ + vacuum.bash \ + vela.bash \ + velero.bash \ + venom.bash \ + virtctl.bash \ + wasmer-headless.bash \ + watchexec.bash \ + waydroid.bash \ + xc.bash \ + ytt.bash \ + zarf.bash \ + zitadel.bash \ + zola.bash + +symlinks: $(DATA) + $(ss) cal \ + ncal + $(ss) flamegraph \ + just \ + watchexec + $(ss) gaiacli \ + gaiad \ + ngrok \ + npm \ + sopstool \ + tendermint + $(ss) gh \ + glab infracost + $(ss) golangci-lint \ + allero \ + alp \ + apko \ + aqua \ + arduino-cli \ + argo \ + asdf \ + atlas \ + atmos \ + bashbot \ + bosh \ + buf \ + caddy \ + chamber \ + changie \ + chezmoi \ + cilium \ + cloudquery \ + clusterctl \ + cmctl \ + colima \ + conform \ + conftest \ + constellation \ + container-structure-test \ + cosign \ + crane \ + crc \ + crictl \ + ctlptl \ + cue \ + dagger \ + dapr \ + dasel \ + datree \ + deck \ + depot \ + devspace \ + diffoci \ + dlv \ + docker \ + driftctl \ + dyff \ + esc \ + flux \ + furyctl \ + gardenctl \ + gcrane \ + gh-label \ + ghorg \ + git-bump \ + gitconfig \ + gitleaks \ + gitsign \ + glen \ + glow \ + go-licenses \ + gomarklint \ + gopass \ + gopherjs \ + goreleaser \ + grype \ + gup \ + helm \ + helmfile \ + hostctl \ + hugo \ + imgpkg \ + incus \ + ignite \ + istioctl \ + jwt \ + k0sctl \ + k3d \ + k3s \ + k3sup \ + k6 \ + k9s \ + kafkactl \ + kapp \ + kconf \ + kind \ + kn \ + ko \ + kompose \ + kool \ + kops \ + krane \ + kratos \ + kubeadm \ + kube-capacity \ + kube-linter \ + kubebuilder \ + kubecm \ + kubectl \ + kubectl-argo-rollouts \ + kubectl-kuttl \ + kubescape \ + kubelogin \ + kubemqctl \ + kubesec \ + kubeshark \ + kubespy \ + kustomize \ + kyverno \ + lefthook \ + limactl \ + linkerd \ + mattermost \ + melange \ + metalctl \ + minikube \ + minishift \ + mise \ + mmctl \ + mockery \ + moldy \ + multi-gitter \ + nerdctl \ + nfpm \ + notation \ + nova \ + oc \ + odo \ + okteto \ + op \ + opa \ + oras \ + ory \ + pitchfork \ + pluto \ + pnpm \ + polygon-edge \ + popeye \ + pulumi \ + px \ + qrpc \ + random \ + rclone \ + regal \ + regctl \ + sinker \ + skaffold \ + slsa-verifier \ + spacectl \ + sshi \ + ssh-inscribe \ + steampipe \ + syft \ + talhelper \ + tanzu \ + tanzu-core \ + tctl \ + tfctl \ + tilt \ + timoni \ + tkn \ + tkn-pac \ + trivy \ + upctl \ + vacuum \ + vela \ + velero \ + venom \ + virtctl \ + ytt \ + zarf \ + zitadel \ + zola + $(ss) hexdump \ + hd + $(ss) insmod \ + insmod.static + $(ss) keyring \ + glances tldr trash trash-empty trash-list \ + trash-put trash-restore + $(ss) mdbook \ + deno \ + diesel \ + dprint \ + rustic \ + sentry-cli \ + starship + $(ss) nox \ + airflow \ + ansible \ + ansible-config \ + ansible-console \ + ansible-doc \ + ansible-galaxy \ + ansible-inventory \ + ansible-playbook \ + ansible-pull \ + ansible-vault \ + conda \ + cz \ + waydroid + $(ss) pip \ + pip3 + $(ss) pipenv \ + black blackd flask httpx + $(ss) ruff \ + mado \ + uv + $(ss) sops \ + kata-runtime todoist + $(ss) vault \ + bao \ + consul \ + fx \ + nomad \ + packer \ + terraform \ + tofu \ + xc + $(ss) wasmer \ + wasmer-headless +.PHONY: symlinks + +SETUP_SYMLINKS = $(srcdir)/../setup-symlinks.sh + +all-local: ss = $(SETUP_SYMLINKS) . +all-local: symlinks + +install-data-hook: ss = $(SETUP_SYMLINKS) $(DESTDIR)$(bashcompfallbackdir) +install-data-hook: symlinks + +check-local: + REPLY=0; \ + for file in $(bashcompfallback_DATA); do \ + $${bashcomp_bash:-$${BASH:-bash}} \ + -O extglob -n $(srcdir)/$$file || REPLY=$$?; \ + done; \ + exit $$REPLY diff --git a/completions-fallback/jungle.bash b/completions-fallback/jungle.bash index f08ae9140c5..cc452248ff7 100644 --- a/completions-fallback/jungle.bash +++ b/completions-fallback/jungle.bash @@ -1,7 +1,7 @@ # 3rd party completion loader for commands emitting -*- shell-script -*- # their completion using "_${cmdname^^}_COMPLETE=source $cmd". -# This pattern is very similar to `completions/_pipenv`, but the value of the -# environment variable is slightly different. +# This pattern is very similar to `completions-fallback/pipenv.bash`, but the +# value of the environment variable is slightly different. # # This serves as a fallback in case the completion is not installed otherwise. diff --git a/completions-fallback/mount.bash b/completions-fallback/mount.bash index 23ef20515b1..b79f399b7db 100644 --- a/completions-fallback/mount.bash +++ b/completions-fallback/mount.bash @@ -4,7 +4,7 @@ # available in util-linux >= 2.28, use that instead. if [[ $OSTYPE == *linux* ]]; then - . "$BASH_SOURCE.linux" + . "${BASH_SOURCE%.bash}.linux.bash" return fi diff --git a/completions-fallback/umount.bash b/completions-fallback/umount.bash index 5a453a8bac1..1d50b3a0b04 100644 --- a/completions-fallback/umount.bash +++ b/completions-fallback/umount.bash @@ -4,7 +4,7 @@ # available in util-linux >= 2.28, use that instead. if [[ $OSTYPE == *linux* ]]; then - . "$BASH_SOURCE.linux" + . "${BASH_SOURCE%.bash}.linux.bash" return fi diff --git a/completions/Makefile.am b/completions/Makefile.am new file mode 100644 index 00000000000..76df678a109 --- /dev/null +++ b/completions/Makefile.am @@ -0,0 +1,29 @@ +# We include all the files in the tarball + +bashcompdir = $(datadir)/$(PACKAGE)/completions +bashcomp_DATA = + +symlinks: $(DATA) +.PHONY: symlinks + +SETUP_SYMLINKS = $(srcdir)/../setup-symlinks.sh + +all-local: ss = $(SETUP_SYMLINKS) . +all-local: symlinks + +install-data-hook: ss = $(SETUP_SYMLINKS) $(DESTDIR)$(bashcompdir) +install-data-hook: symlinks + +check-local: + REPLY=0; \ + for file in $(bashcomp_DATA); do \ + $${bashcomp_bash:-$${BASH:-bash}} \ + -O extglob -n $(srcdir)/$$file || REPLY=$$?; \ + done; \ + exit $$REPLY + +install-data-local: + $(MKDIR_P) $(DESTDIR)$(datadir)/bash-completion/$(subdir) + +uninstall-local: + -rmdir $(DESTDIR)$(datadir)/bash-completion/$(subdir) diff --git a/configure.ac b/configure.ac index 050d892d2fd..9065918db74 100644 --- a/configure.ac +++ b/configure.ac @@ -35,8 +35,11 @@ AM_CONDITIONAL([SOLARIS], [test "${install_solaris}" = yes]) AC_CONFIG_FILES([ Makefile completions/Makefile +completions-core/Makefile +completions-fallback/Makefile doc/Makefile helpers/Makefile +helpers-core/Makefile test/Makefile test/fallback/Makefile test/fallback/completions/Makefile diff --git a/doc/api-and-naming.md b/doc/api-and-naming.md index aab23096730..f5f4bad776e 100644 --- a/doc/api-and-naming.md +++ b/doc/api-and-naming.md @@ -49,7 +49,7 @@ deprecated in. Due to its nature, bash-completion adds a number of functions and variables in the shell's environment. -| | `bash_completion` | `completions/*` | +| | `bash_completion` | `completions*/*` | |:------------------------------------|:--------------------|:--------------------------------------------------------------------------------------| | public configuration variables | `BASH_COMPLETION_*` | `BASH_COMPLETION_CMD_${Command^^}_${Config^^}` | | private non-local variables | `_comp__*` | `_comp_cmd_${Command}__${Data}` | @@ -70,7 +70,7 @@ the function. Variables and functions affecting multiple completions are usually defined in the main `bash_completion` file and do not require any additional files to be sourced. Variables and functions in command specific completion files in -`completions/*` follow a slightly different naming scheme; they include +`completions*/*` follow a slightly different naming scheme; they include `cmd` in their name as well as the name of the command. Public configuration variables are shell ones that affect the runtime behavior diff --git a/helpers-core/Makefile.am b/helpers-core/Makefile.am index fb3c0c8d4ee..8322b0da572 100644 --- a/helpers-core/Makefile.am +++ b/helpers-core/Makefile.am @@ -1,4 +1,4 @@ -helpersdir = $(datadir)/$(PACKAGE)/helpers -helpers_DATA = perl python make-extract-targets.awk +helperscoredir = $(datadir)/$(PACKAGE)/helpers-core +helperscore_DATA = perl python make-extract-targets.awk -EXTRA_DIST = $(helpers_DATA) +EXTRA_DIST = $(helperscore_DATA) diff --git a/helpers-core/make-extract-targets.awk b/helpers-core/make-extract-targets.awk index b0ce10ea4d9..16f680f2436 100644 --- a/helpers-core/make-extract-targets.awk +++ b/helpers-core/make-extract-targets.awk @@ -1,8 +1,8 @@ # helper AWK script for GNU make -*- awk -*- # This AWK script is used by the function `_comp_cmd_make__extract_targets` in -# `completions/make`. This script receives the output of `make -npq' as the -# input file or stdin and outputs the list of targets matching the prefix. +# `completions-core/make`. This script receives the output of `make -npq' as +# the input file or stdin and outputs the list of targets matching the prefix. # # @env prefix Specifies the prefix to match. # @env prefix_replace Specifies the string that replaces the prefix in the diff --git a/helpers/Makefile.am b/helpers/Makefile.am new file mode 100644 index 00000000000..bc049a1e299 --- /dev/null +++ b/helpers/Makefile.am @@ -0,0 +1,10 @@ +helpersdir = $(datadir)/$(PACKAGE)/helpers +helpers_DATA = + +EXTRA_DIST = $(helpers_DATA) + +install-data-local: + $(MKDIR_P) $(DESTDIR)$(datadir)/bash-completion/$(subdir) + +uninstall-local: + -rmdir $(DESTDIR)$(datadir)/bash-completion/$(subdir) diff --git a/setup-symlinks.sh b/setup-symlinks.sh index 1ad8c2cba1a..604efd10ef7 100755 --- a/setup-symlinks.sh +++ b/setup-symlinks.sh @@ -6,6 +6,6 @@ target=$1 shift for file in "$@"; do - rm -f "$targetdir/$file" - ln -s "$target" "$targetdir/$file" + rm -f "$targetdir/$file" "$targetdir/_$file" "$targetdir/$file.bash" + ln -s "$target.bash" "$targetdir/$file.bash" done diff --git a/test/fallback/completions/Makefile.am b/test/fallback/completions/Makefile.am index b98c0b6f437..355725a716a 100644 --- a/test/fallback/completions/Makefile.am +++ b/test/fallback/completions/Makefile.am @@ -1,70 +1,70 @@ EXTRA_DIST = \ - argc \ - adb \ - bombadil \ - cal \ - cargo \ - chfn \ - chsh \ - coder \ - delta \ - dmesg \ - eject \ - flamegraph \ - gaiacli \ - gh \ - golangci-lint \ - gsctl \ - hexdump \ - hwclock \ - insmod \ - ionice \ - jj \ - jungle \ - keyring \ - kontena \ - look \ - mdbook \ - mock \ - modinfo \ - modules \ - modprobe \ - mount \ - mount.linux \ - mtr \ - newgrp \ - nmcli \ - nox \ - nvm \ - pip \ - pipenv \ - renice \ - repomanage \ - reptyr \ - rmmod \ - rfkill \ - rtcwake \ - ruff \ - runuser \ - rustup \ - secret-tool \ - slackpkg \ - sops \ - stern \ - stripe \ - su \ - svn \ - svnadmin \ - svnlook \ - task \ - tokio-console \ - udevadm \ - umount \ - umount.linux \ - uvx \ - vault \ - wasmer \ - write \ - xm \ - yq \ - yum + argc.bash \ + adb.bash \ + bombadil.bash \ + cal.bash \ + cargo.bash \ + chfn.bash \ + chsh.bash \ + coder.bash \ + delta.bash \ + dmesg.bash \ + eject.bash \ + flamegraph.bash \ + gaiacli.bash \ + gh.bash \ + golangci-lint.bash \ + gsctl.bash \ + hexdump.bash \ + hwclock.bash \ + insmod.bash \ + ionice.bash \ + jj.bash \ + jungle.bash \ + keyring.bash \ + kontena.bash \ + look.bash \ + mdbook.bash \ + mock.bash \ + modinfo.bash \ + modules.bash \ + modprobe.bash \ + mount.bash \ + mount.linux.bash \ + mtr.bash \ + newgrp.bash \ + nmcli.bash \ + nox.bash \ + nvm.bash \ + pip.bash \ + pipenv.bash \ + renice.bash \ + repomanage.bash \ + reptyr.bash \ + rmmod.bash \ + rfkill.bash \ + rtcwake.bash \ + ruff.bash \ + runuser.bash \ + rustup.bash \ + secret-tool.bash \ + slackpkg.bash \ + sops.bash \ + stern.bash \ + stripe.bash \ + su.bash \ + svn.bash \ + svnadmin.bash \ + svnlook.bash \ + task.bash \ + tokio-console.bash \ + udevadm.bash \ + umount.bash \ + umount.linux.bash \ + uvx.bash \ + vault.bash \ + wasmer.bash \ + write.bash \ + xm.bash \ + yq.bash \ + yum.bash diff --git a/test/fallback/update-fallback-links b/test/fallback/update-fallback-links index 5da1bcb711a..f4a45148714 100755 --- a/test/fallback/update-fallback-links +++ b/test/fallback/update-fallback-links @@ -12,9 +12,9 @@ for f in *; do git rm -f "$f" fi done -for f in ../../../completions/_*; do +for f in ../../../completions-fallback/*.bash; do if is_tracked_by_git "$f"; then - ln -sf "$f" "${f##*/_}" - git add --verbose "${f##*/_}" + ln -sf "$f" "${f##*/}" + git add --verbose "${f##*/}" fi done diff --git a/test/runLint b/test/runLint index d011736b18f..088c7b88e27 100755 --- a/test/runLint +++ b/test/runLint @@ -4,7 +4,7 @@ set -u gitgrep() { local out=$(git grep -I -P -n "$1" | - grep -E '^(bash_completion|completions/|test/)' | + grep -E '^(bash_completion|completions(-fallback|-core)?/|test/)' | grep -Ev "^test/runLint\>${filter_out:+|$filter_out}") if [[ $out ]]; then printf '***** %s\n' "$2" diff --git a/test/t/test_rsync.py b/test/t/test_rsync.py index b527c4fa8f2..ee4304b1e71 100644 --- a/test/t/test_rsync.py +++ b/test/t/test_rsync.py @@ -78,8 +78,8 @@ def test_remote_path_with_spaces(self, bash): @pytest.mark.complete(r"rsync -na spaced\ ", cwd="scp") def test_local_path_with_spaces(self, completion): """This function tests xfunc _comp_xfunc_scp_compgen_local_files, which - is defined in completions/ssh, through the rsync interface. We reuse - the fixture directory for the test of the scp completion. + is defined in completions-core/ssh, through the rsync interface. We + reuse the fixture directory for the test of the scp completion. The expected result depends on the rsync version, so we check the result if it matches either one of two possible expected results. diff --git a/test/t/unit/test_unit_load.py b/test/t/unit/test_unit_load.py index 5fcfda2dfe6..9a556b65a42 100644 --- a/test/t/unit/test_unit_load.py +++ b/test/t/unit/test_unit_load.py @@ -119,8 +119,8 @@ def test_cmd_path_2(self, bash, fixture_dir): def test_cmd_intree_precedence(self, bash, fixture_dir): """ - Test in-tree, i.e. completions/$cmd relative to the main script - has precedence over location derived from PATH. + Test in-tree, i.e. completions/$cmd relative to the main script has + precedence over location derived from PATH. """ with bash_env_saved(bash) as bash_env: bash_env.chdir(fixture_dir) From 209f4bb0a1f85cf6618565f8a4273a18a81ed4d8 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Mon, 29 Dec 2025 16:44:25 +0900 Subject: [PATCH 3/3] refactor(test/fallback): symlink "completions-fallback" on the fly Background: `test/fallback/completions` has been used to override the precedence of the completion lookup of fallback completions. With the traditional search order of completion files, if the system where the test is run provides a completion file, that completion file is loaded instead of a fallback completion file in the bash-completion tree. However, we want to test our in-tree fallback completion. To correctly select our in-tree fallback completion, we set up `test/fallback/completions` and specified `test/fallback` to BASH_COMPLETION_USER_DIR. With the new search order, completions in the test environment will be used instead of the in-tree completions even for non-fallback completions. To change the ordering of the completions, one would need to make symbolic links for all completions in `test/fallback/completions`. However, with such a setup, all files are duplicated as hard links in the tarball created by `make dist` (because Autoconf creates a tarball with the symbolic links fully resolved to hard links). In this patch, * We give up providing pre-defined `test/fallback/completions` in the Git tree. We remove the directory `test/fallback`. * We instead prepare BASH_COMPLETINO_USER_DIR directories on the fly, where symbolic links "completions" to "completions-core" and "completions-fallback" are created, as a pytest fixture "test_session_tmpdir". * HISTFILE has been created separately inside the fixture "bash", but we now create HISTFILE inside "test_session_tmpdir" shared by different Bash processes. --- .pre-commit-config.yaml | 11 +-- configure.ac | 2 - test/Makefile.am | 2 +- test/config/bashrc | 7 +- test/fallback/Makefile.am | 7 -- test/fallback/completions/Makefile.am | 70 -------------------- test/fallback/completions/README.md | 8 --- test/fallback/completions/adb.bash | 1 - test/fallback/completions/argc.bash | 1 - test/fallback/completions/bombadil.bash | 1 - test/fallback/completions/cal.bash | 1 - test/fallback/completions/cargo.bash | 1 - test/fallback/completions/chfn.bash | 1 - test/fallback/completions/chsh.bash | 1 - test/fallback/completions/coder.bash | 1 - test/fallback/completions/delta.bash | 1 - test/fallback/completions/dmesg.bash | 1 - test/fallback/completions/eject.bash | 1 - test/fallback/completions/flamegraph.bash | 1 - test/fallback/completions/gaiacli.bash | 1 - test/fallback/completions/gh.bash | 1 - test/fallback/completions/golangci-lint.bash | 1 - test/fallback/completions/gsctl.bash | 1 - test/fallback/completions/hexdump.bash | 1 - test/fallback/completions/hwclock.bash | 1 - test/fallback/completions/insmod.bash | 1 - test/fallback/completions/ionice.bash | 1 - test/fallback/completions/jj.bash | 1 - test/fallback/completions/jungle.bash | 1 - test/fallback/completions/keyring.bash | 1 - test/fallback/completions/kontena.bash | 1 - test/fallback/completions/look.bash | 1 - test/fallback/completions/mdbook.bash | 1 - test/fallback/completions/mock.bash | 1 - test/fallback/completions/modinfo.bash | 1 - test/fallback/completions/modprobe.bash | 1 - test/fallback/completions/modules.bash | 1 - test/fallback/completions/mount.bash | 1 - test/fallback/completions/mount.linux.bash | 1 - test/fallback/completions/mtr.bash | 1 - test/fallback/completions/newgrp.bash | 1 - test/fallback/completions/nmcli.bash | 1 - test/fallback/completions/nox.bash | 1 - test/fallback/completions/nvm.bash | 1 - test/fallback/completions/pip.bash | 1 - test/fallback/completions/pipenv.bash | 1 - test/fallback/completions/renice.bash | 1 - test/fallback/completions/repomanage.bash | 1 - test/fallback/completions/reptyr.bash | 1 - test/fallback/completions/rfkill.bash | 1 - test/fallback/completions/rg.bash | 1 - test/fallback/completions/rmmod.bash | 1 - test/fallback/completions/rtcwake.bash | 1 - test/fallback/completions/ruff.bash | 1 - test/fallback/completions/runuser.bash | 1 - test/fallback/completions/rustup.bash | 1 - test/fallback/completions/secret-tool.bash | 1 - test/fallback/completions/shtab.bash | 1 - test/fallback/completions/slackpkg.bash | 1 - test/fallback/completions/sops.bash | 1 - test/fallback/completions/stern.bash | 1 - test/fallback/completions/stripe.bash | 1 - test/fallback/completions/su.bash | 1 - test/fallback/completions/svn.bash | 1 - test/fallback/completions/svnadmin.bash | 1 - test/fallback/completions/svnlook.bash | 1 - test/fallback/completions/task.bash | 1 - test/fallback/completions/tokio-console.bash | 1 - test/fallback/completions/udevadm.bash | 1 - test/fallback/completions/umount.bash | 1 - test/fallback/completions/umount.linux.bash | 1 - test/fallback/completions/uvx.bash | 1 - test/fallback/completions/vault.bash | 1 - test/fallback/completions/wasmer.bash | 1 - test/fallback/completions/write.bash | 1 - test/fallback/completions/xm.bash | 1 - test/fallback/completions/yq.bash | 1 - test/fallback/completions/yum.bash | 1 - test/fallback/update-fallback-links | 20 ------ test/t/conftest.py | 61 ++++++++++------- 80 files changed, 45 insertions(+), 214 deletions(-) delete mode 100644 test/fallback/Makefile.am delete mode 100644 test/fallback/completions/Makefile.am delete mode 100644 test/fallback/completions/README.md delete mode 120000 test/fallback/completions/adb.bash delete mode 120000 test/fallback/completions/argc.bash delete mode 120000 test/fallback/completions/bombadil.bash delete mode 120000 test/fallback/completions/cal.bash delete mode 120000 test/fallback/completions/cargo.bash delete mode 120000 test/fallback/completions/chfn.bash delete mode 120000 test/fallback/completions/chsh.bash delete mode 120000 test/fallback/completions/coder.bash delete mode 120000 test/fallback/completions/delta.bash delete mode 120000 test/fallback/completions/dmesg.bash delete mode 120000 test/fallback/completions/eject.bash delete mode 120000 test/fallback/completions/flamegraph.bash delete mode 120000 test/fallback/completions/gaiacli.bash delete mode 120000 test/fallback/completions/gh.bash delete mode 120000 test/fallback/completions/golangci-lint.bash delete mode 120000 test/fallback/completions/gsctl.bash delete mode 120000 test/fallback/completions/hexdump.bash delete mode 120000 test/fallback/completions/hwclock.bash delete mode 120000 test/fallback/completions/insmod.bash delete mode 120000 test/fallback/completions/ionice.bash delete mode 120000 test/fallback/completions/jj.bash delete mode 120000 test/fallback/completions/jungle.bash delete mode 120000 test/fallback/completions/keyring.bash delete mode 120000 test/fallback/completions/kontena.bash delete mode 120000 test/fallback/completions/look.bash delete mode 120000 test/fallback/completions/mdbook.bash delete mode 120000 test/fallback/completions/mock.bash delete mode 120000 test/fallback/completions/modinfo.bash delete mode 120000 test/fallback/completions/modprobe.bash delete mode 120000 test/fallback/completions/modules.bash delete mode 120000 test/fallback/completions/mount.bash delete mode 120000 test/fallback/completions/mount.linux.bash delete mode 120000 test/fallback/completions/mtr.bash delete mode 120000 test/fallback/completions/newgrp.bash delete mode 120000 test/fallback/completions/nmcli.bash delete mode 120000 test/fallback/completions/nox.bash delete mode 120000 test/fallback/completions/nvm.bash delete mode 120000 test/fallback/completions/pip.bash delete mode 120000 test/fallback/completions/pipenv.bash delete mode 120000 test/fallback/completions/renice.bash delete mode 120000 test/fallback/completions/repomanage.bash delete mode 120000 test/fallback/completions/reptyr.bash delete mode 120000 test/fallback/completions/rfkill.bash delete mode 120000 test/fallback/completions/rg.bash delete mode 120000 test/fallback/completions/rmmod.bash delete mode 120000 test/fallback/completions/rtcwake.bash delete mode 120000 test/fallback/completions/ruff.bash delete mode 120000 test/fallback/completions/runuser.bash delete mode 120000 test/fallback/completions/rustup.bash delete mode 120000 test/fallback/completions/secret-tool.bash delete mode 120000 test/fallback/completions/shtab.bash delete mode 120000 test/fallback/completions/slackpkg.bash delete mode 120000 test/fallback/completions/sops.bash delete mode 120000 test/fallback/completions/stern.bash delete mode 120000 test/fallback/completions/stripe.bash delete mode 120000 test/fallback/completions/su.bash delete mode 120000 test/fallback/completions/svn.bash delete mode 120000 test/fallback/completions/svnadmin.bash delete mode 120000 test/fallback/completions/svnlook.bash delete mode 120000 test/fallback/completions/task.bash delete mode 120000 test/fallback/completions/tokio-console.bash delete mode 120000 test/fallback/completions/udevadm.bash delete mode 120000 test/fallback/completions/umount.bash delete mode 120000 test/fallback/completions/umount.linux.bash delete mode 120000 test/fallback/completions/uvx.bash delete mode 120000 test/fallback/completions/vault.bash delete mode 120000 test/fallback/completions/wasmer.bash delete mode 120000 test/fallback/completions/write.bash delete mode 120000 test/fallback/completions/xm.bash delete mode 120000 test/fallback/completions/yq.bash delete mode 120000 test/fallback/completions/yum.bash delete mode 100755 test/fallback/update-fallback-links diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 77e49536f6e..98f844ec846 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: hooks: - id: shfmt types: [text] - files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-(core|fallback)/.+\.bash|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ + files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-(core|fallback)/.+\.bash|test/(config/bashrc|fixtures/.+/bin/.+|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.11.0.1 @@ -26,7 +26,7 @@ repos: - id: shellcheck args: [-f, gcc] types: [text] - files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-(core|fallback)/.+\.bash|test/(config/bashrc|fixtures/.+/bin/.+|fallback/update-fallback-links|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ + files: ^(bash_completion(\.d/[^/]+\.bash)?|completions-(core|fallback)/.+\.bash|test/(config/bashrc|fixtures/.+/bin/.+|runLint|update-test-cmd-list)|.+\.sh(\.in)?)$ require_serial: false # We disable SC1090 anyway, so parallel is ok - repo: local @@ -38,13 +38,6 @@ repos: files: ^test/t/.+\.py$ pass_filenames: false - - id: update-test-fallback-links - name: update-test-fallback-links - language: script - entry: test/fallback/update-fallback-links - files: ^completions-fallback/ - pass_filenames: false - - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.14.3 hooks: diff --git a/configure.ac b/configure.ac index 9065918db74..59ac0d3397e 100644 --- a/configure.ac +++ b/configure.ac @@ -41,8 +41,6 @@ doc/Makefile helpers/Makefile helpers-core/Makefile test/Makefile -test/fallback/Makefile -test/fallback/completions/Makefile test/t/Makefile test/t/unit/Makefile ]) diff --git a/test/Makefile.am b/test/Makefile.am index aaf32e02065..431c33a4180 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = fallback t +SUBDIRS = t EXTRA_DIST = config \ fixtures \ diff --git a/test/config/bashrc b/test/config/bashrc index 15e891979d4..d701136f383 100644 --- a/test/config/bashrc +++ b/test/config/bashrc @@ -34,9 +34,10 @@ export BASH_COMPLETION_USER_FILE=/dev/null # overriding in-tree completions. Setting the user dir would otherwise suffice, # but simple xspec completions are only installed if a separate one is not # found in *any* completion dirs, and we want to use our "shadow" completion -# dir with which we cause loading of our in-tree fallback completions -# instead of possibly (system-)installed upstream ones. -export BASH_COMPLETION_USER_DIR="$SRCDIRABS/fallback" +# dir with which we cause loading of our in-tree completions instead of +# possibly (system-)installed upstream ones. +# shellcheck disable=SC2154 +export BASH_COMPLETION_USER_DIR="$_comp__test_session_tmpdir/bash-completion:$_comp__test_session_tmpdir/bash-completion-fallback" export BASH_COMPLETION_COMPAT_DIR="$SRCDIRABS/../bash_completion.d" export XDG_DATA_DIRS=/var/empty diff --git a/test/fallback/Makefile.am b/test/fallback/Makefile.am deleted file mode 100644 index 096a1968254..00000000000 --- a/test/fallback/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUBDIRS = completions - -EXTRA_DIST = \ - update-fallback-links - -update: - ./update-fallback-links diff --git a/test/fallback/completions/Makefile.am b/test/fallback/completions/Makefile.am deleted file mode 100644 index 355725a716a..00000000000 --- a/test/fallback/completions/Makefile.am +++ /dev/null @@ -1,70 +0,0 @@ -EXTRA_DIST = \ - argc.bash \ - adb.bash \ - bombadil.bash \ - cal.bash \ - cargo.bash \ - chfn.bash \ - chsh.bash \ - coder.bash \ - delta.bash \ - dmesg.bash \ - eject.bash \ - flamegraph.bash \ - gaiacli.bash \ - gh.bash \ - golangci-lint.bash \ - gsctl.bash \ - hexdump.bash \ - hwclock.bash \ - insmod.bash \ - ionice.bash \ - jj.bash \ - jungle.bash \ - keyring.bash \ - kontena.bash \ - look.bash \ - mdbook.bash \ - mock.bash \ - modinfo.bash \ - modules.bash \ - modprobe.bash \ - mount.bash \ - mount.linux.bash \ - mtr.bash \ - newgrp.bash \ - nmcli.bash \ - nox.bash \ - nvm.bash \ - pip.bash \ - pipenv.bash \ - renice.bash \ - repomanage.bash \ - reptyr.bash \ - rmmod.bash \ - rfkill.bash \ - rtcwake.bash \ - ruff.bash \ - runuser.bash \ - rustup.bash \ - secret-tool.bash \ - slackpkg.bash \ - sops.bash \ - stern.bash \ - stripe.bash \ - su.bash \ - svn.bash \ - svnadmin.bash \ - svnlook.bash \ - task.bash \ - tokio-console.bash \ - udevadm.bash \ - umount.bash \ - umount.linux.bash \ - uvx.bash \ - vault.bash \ - wasmer.bash \ - write.bash \ - xm.bash \ - yq.bash \ - yum.bash diff --git a/test/fallback/completions/README.md b/test/fallback/completions/README.md deleted file mode 100644 index 020e4b25080..00000000000 --- a/test/fallback/completions/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# test/fallback/completions - -This directory should contain a non-underscore prefixed symlink to -corresponding underscore prefixed, fallback completions we have in the tree. - -The test suite sets up loading of completions so that this dir is preferred -over system install locations, in order to test our fallback in-tree -completions over possibly installed non-fallback out-of-tree ones. diff --git a/test/fallback/completions/adb.bash b/test/fallback/completions/adb.bash deleted file mode 120000 index 91c4f50a96b..00000000000 --- a/test/fallback/completions/adb.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/adb.bash \ No newline at end of file diff --git a/test/fallback/completions/argc.bash b/test/fallback/completions/argc.bash deleted file mode 120000 index 7297fc8e94d..00000000000 --- a/test/fallback/completions/argc.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/argc.bash \ No newline at end of file diff --git a/test/fallback/completions/bombadil.bash b/test/fallback/completions/bombadil.bash deleted file mode 120000 index 6860b0fedff..00000000000 --- a/test/fallback/completions/bombadil.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/bombadil.bash \ No newline at end of file diff --git a/test/fallback/completions/cal.bash b/test/fallback/completions/cal.bash deleted file mode 120000 index 748ccd63f30..00000000000 --- a/test/fallback/completions/cal.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/cal.bash \ No newline at end of file diff --git a/test/fallback/completions/cargo.bash b/test/fallback/completions/cargo.bash deleted file mode 120000 index f7ca0928bd7..00000000000 --- a/test/fallback/completions/cargo.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/cargo.bash \ No newline at end of file diff --git a/test/fallback/completions/chfn.bash b/test/fallback/completions/chfn.bash deleted file mode 120000 index 1a2db2eb223..00000000000 --- a/test/fallback/completions/chfn.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/chfn.bash \ No newline at end of file diff --git a/test/fallback/completions/chsh.bash b/test/fallback/completions/chsh.bash deleted file mode 120000 index 7f95eb50078..00000000000 --- a/test/fallback/completions/chsh.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/chsh.bash \ No newline at end of file diff --git a/test/fallback/completions/coder.bash b/test/fallback/completions/coder.bash deleted file mode 120000 index 10bb90e2364..00000000000 --- a/test/fallback/completions/coder.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/coder.bash \ No newline at end of file diff --git a/test/fallback/completions/delta.bash b/test/fallback/completions/delta.bash deleted file mode 120000 index ad46068defd..00000000000 --- a/test/fallback/completions/delta.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/delta.bash \ No newline at end of file diff --git a/test/fallback/completions/dmesg.bash b/test/fallback/completions/dmesg.bash deleted file mode 120000 index 58174812add..00000000000 --- a/test/fallback/completions/dmesg.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/dmesg.bash \ No newline at end of file diff --git a/test/fallback/completions/eject.bash b/test/fallback/completions/eject.bash deleted file mode 120000 index 9c7efeaa18e..00000000000 --- a/test/fallback/completions/eject.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/eject.bash \ No newline at end of file diff --git a/test/fallback/completions/flamegraph.bash b/test/fallback/completions/flamegraph.bash deleted file mode 120000 index bfedd106ce5..00000000000 --- a/test/fallback/completions/flamegraph.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/flamegraph.bash \ No newline at end of file diff --git a/test/fallback/completions/gaiacli.bash b/test/fallback/completions/gaiacli.bash deleted file mode 120000 index c13f646abe8..00000000000 --- a/test/fallback/completions/gaiacli.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/gaiacli.bash \ No newline at end of file diff --git a/test/fallback/completions/gh.bash b/test/fallback/completions/gh.bash deleted file mode 120000 index 7b4cee2090f..00000000000 --- a/test/fallback/completions/gh.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/gh.bash \ No newline at end of file diff --git a/test/fallback/completions/golangci-lint.bash b/test/fallback/completions/golangci-lint.bash deleted file mode 120000 index b80b61e830e..00000000000 --- a/test/fallback/completions/golangci-lint.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/golangci-lint.bash \ No newline at end of file diff --git a/test/fallback/completions/gsctl.bash b/test/fallback/completions/gsctl.bash deleted file mode 120000 index 59256ff007b..00000000000 --- a/test/fallback/completions/gsctl.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/gsctl.bash \ No newline at end of file diff --git a/test/fallback/completions/hexdump.bash b/test/fallback/completions/hexdump.bash deleted file mode 120000 index 86d4efbf210..00000000000 --- a/test/fallback/completions/hexdump.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/hexdump.bash \ No newline at end of file diff --git a/test/fallback/completions/hwclock.bash b/test/fallback/completions/hwclock.bash deleted file mode 120000 index 354bbbf2e3a..00000000000 --- a/test/fallback/completions/hwclock.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/hwclock.bash \ No newline at end of file diff --git a/test/fallback/completions/insmod.bash b/test/fallback/completions/insmod.bash deleted file mode 120000 index f4567eb0ff1..00000000000 --- a/test/fallback/completions/insmod.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/insmod.bash \ No newline at end of file diff --git a/test/fallback/completions/ionice.bash b/test/fallback/completions/ionice.bash deleted file mode 120000 index e6ff9de1afb..00000000000 --- a/test/fallback/completions/ionice.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/ionice.bash \ No newline at end of file diff --git a/test/fallback/completions/jj.bash b/test/fallback/completions/jj.bash deleted file mode 120000 index 7e373bd8000..00000000000 --- a/test/fallback/completions/jj.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/jj.bash \ No newline at end of file diff --git a/test/fallback/completions/jungle.bash b/test/fallback/completions/jungle.bash deleted file mode 120000 index 5ce40180a86..00000000000 --- a/test/fallback/completions/jungle.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/jungle.bash \ No newline at end of file diff --git a/test/fallback/completions/keyring.bash b/test/fallback/completions/keyring.bash deleted file mode 120000 index 0e59a2502b5..00000000000 --- a/test/fallback/completions/keyring.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/keyring.bash \ No newline at end of file diff --git a/test/fallback/completions/kontena.bash b/test/fallback/completions/kontena.bash deleted file mode 120000 index 9c8514ad454..00000000000 --- a/test/fallback/completions/kontena.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/kontena.bash \ No newline at end of file diff --git a/test/fallback/completions/look.bash b/test/fallback/completions/look.bash deleted file mode 120000 index f809de03f08..00000000000 --- a/test/fallback/completions/look.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/look.bash \ No newline at end of file diff --git a/test/fallback/completions/mdbook.bash b/test/fallback/completions/mdbook.bash deleted file mode 120000 index 1ffd70065aa..00000000000 --- a/test/fallback/completions/mdbook.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/mdbook.bash \ No newline at end of file diff --git a/test/fallback/completions/mock.bash b/test/fallback/completions/mock.bash deleted file mode 120000 index b8d200c89ba..00000000000 --- a/test/fallback/completions/mock.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/mock.bash \ No newline at end of file diff --git a/test/fallback/completions/modinfo.bash b/test/fallback/completions/modinfo.bash deleted file mode 120000 index 04c3aa3d5c2..00000000000 --- a/test/fallback/completions/modinfo.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/modinfo.bash \ No newline at end of file diff --git a/test/fallback/completions/modprobe.bash b/test/fallback/completions/modprobe.bash deleted file mode 120000 index ec3a0a6c3c7..00000000000 --- a/test/fallback/completions/modprobe.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/modprobe.bash \ No newline at end of file diff --git a/test/fallback/completions/modules.bash b/test/fallback/completions/modules.bash deleted file mode 120000 index bef087b55c1..00000000000 --- a/test/fallback/completions/modules.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/modules.bash \ No newline at end of file diff --git a/test/fallback/completions/mount.bash b/test/fallback/completions/mount.bash deleted file mode 120000 index 8a0b86c8bb1..00000000000 --- a/test/fallback/completions/mount.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/mount.bash \ No newline at end of file diff --git a/test/fallback/completions/mount.linux.bash b/test/fallback/completions/mount.linux.bash deleted file mode 120000 index 8a54b5761f7..00000000000 --- a/test/fallback/completions/mount.linux.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/mount.linux.bash \ No newline at end of file diff --git a/test/fallback/completions/mtr.bash b/test/fallback/completions/mtr.bash deleted file mode 120000 index c6477236b2d..00000000000 --- a/test/fallback/completions/mtr.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/mtr.bash \ No newline at end of file diff --git a/test/fallback/completions/newgrp.bash b/test/fallback/completions/newgrp.bash deleted file mode 120000 index ae602f79278..00000000000 --- a/test/fallback/completions/newgrp.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/newgrp.bash \ No newline at end of file diff --git a/test/fallback/completions/nmcli.bash b/test/fallback/completions/nmcli.bash deleted file mode 120000 index 140fed071bb..00000000000 --- a/test/fallback/completions/nmcli.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/nmcli.bash \ No newline at end of file diff --git a/test/fallback/completions/nox.bash b/test/fallback/completions/nox.bash deleted file mode 120000 index 3923f0a6196..00000000000 --- a/test/fallback/completions/nox.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/nox.bash \ No newline at end of file diff --git a/test/fallback/completions/nvm.bash b/test/fallback/completions/nvm.bash deleted file mode 120000 index 45e2c5bbb58..00000000000 --- a/test/fallback/completions/nvm.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/nvm.bash \ No newline at end of file diff --git a/test/fallback/completions/pip.bash b/test/fallback/completions/pip.bash deleted file mode 120000 index 9031d4d3165..00000000000 --- a/test/fallback/completions/pip.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/pip.bash \ No newline at end of file diff --git a/test/fallback/completions/pipenv.bash b/test/fallback/completions/pipenv.bash deleted file mode 120000 index 6da17c63ab6..00000000000 --- a/test/fallback/completions/pipenv.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/pipenv.bash \ No newline at end of file diff --git a/test/fallback/completions/renice.bash b/test/fallback/completions/renice.bash deleted file mode 120000 index eedc4d87c25..00000000000 --- a/test/fallback/completions/renice.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/renice.bash \ No newline at end of file diff --git a/test/fallback/completions/repomanage.bash b/test/fallback/completions/repomanage.bash deleted file mode 120000 index 71cce3c41b2..00000000000 --- a/test/fallback/completions/repomanage.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/repomanage.bash \ No newline at end of file diff --git a/test/fallback/completions/reptyr.bash b/test/fallback/completions/reptyr.bash deleted file mode 120000 index 852606456ea..00000000000 --- a/test/fallback/completions/reptyr.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/reptyr.bash \ No newline at end of file diff --git a/test/fallback/completions/rfkill.bash b/test/fallback/completions/rfkill.bash deleted file mode 120000 index b4416d19eb2..00000000000 --- a/test/fallback/completions/rfkill.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/rfkill.bash \ No newline at end of file diff --git a/test/fallback/completions/rg.bash b/test/fallback/completions/rg.bash deleted file mode 120000 index 91e6ed5f2d7..00000000000 --- a/test/fallback/completions/rg.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/rg.bash \ No newline at end of file diff --git a/test/fallback/completions/rmmod.bash b/test/fallback/completions/rmmod.bash deleted file mode 120000 index 9be9cd6d7bb..00000000000 --- a/test/fallback/completions/rmmod.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/rmmod.bash \ No newline at end of file diff --git a/test/fallback/completions/rtcwake.bash b/test/fallback/completions/rtcwake.bash deleted file mode 120000 index cb1bca07218..00000000000 --- a/test/fallback/completions/rtcwake.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/rtcwake.bash \ No newline at end of file diff --git a/test/fallback/completions/ruff.bash b/test/fallback/completions/ruff.bash deleted file mode 120000 index 158e02a19e4..00000000000 --- a/test/fallback/completions/ruff.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/ruff.bash \ No newline at end of file diff --git a/test/fallback/completions/runuser.bash b/test/fallback/completions/runuser.bash deleted file mode 120000 index 00215a8f393..00000000000 --- a/test/fallback/completions/runuser.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/runuser.bash \ No newline at end of file diff --git a/test/fallback/completions/rustup.bash b/test/fallback/completions/rustup.bash deleted file mode 120000 index ba956afa5e9..00000000000 --- a/test/fallback/completions/rustup.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/rustup.bash \ No newline at end of file diff --git a/test/fallback/completions/secret-tool.bash b/test/fallback/completions/secret-tool.bash deleted file mode 120000 index 37801eed304..00000000000 --- a/test/fallback/completions/secret-tool.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/secret-tool.bash \ No newline at end of file diff --git a/test/fallback/completions/shtab.bash b/test/fallback/completions/shtab.bash deleted file mode 120000 index 5748f2a3458..00000000000 --- a/test/fallback/completions/shtab.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/shtab.bash \ No newline at end of file diff --git a/test/fallback/completions/slackpkg.bash b/test/fallback/completions/slackpkg.bash deleted file mode 120000 index faefc58ea21..00000000000 --- a/test/fallback/completions/slackpkg.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/slackpkg.bash \ No newline at end of file diff --git a/test/fallback/completions/sops.bash b/test/fallback/completions/sops.bash deleted file mode 120000 index e13271c014c..00000000000 --- a/test/fallback/completions/sops.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/sops.bash \ No newline at end of file diff --git a/test/fallback/completions/stern.bash b/test/fallback/completions/stern.bash deleted file mode 120000 index 5cbb43f65fb..00000000000 --- a/test/fallback/completions/stern.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/stern.bash \ No newline at end of file diff --git a/test/fallback/completions/stripe.bash b/test/fallback/completions/stripe.bash deleted file mode 120000 index 87646f834f1..00000000000 --- a/test/fallback/completions/stripe.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/stripe.bash \ No newline at end of file diff --git a/test/fallback/completions/su.bash b/test/fallback/completions/su.bash deleted file mode 120000 index 3bc1c0c7922..00000000000 --- a/test/fallback/completions/su.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/su.bash \ No newline at end of file diff --git a/test/fallback/completions/svn.bash b/test/fallback/completions/svn.bash deleted file mode 120000 index 12f0c08c3bb..00000000000 --- a/test/fallback/completions/svn.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/svn.bash \ No newline at end of file diff --git a/test/fallback/completions/svnadmin.bash b/test/fallback/completions/svnadmin.bash deleted file mode 120000 index 40aeceb5439..00000000000 --- a/test/fallback/completions/svnadmin.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/svnadmin.bash \ No newline at end of file diff --git a/test/fallback/completions/svnlook.bash b/test/fallback/completions/svnlook.bash deleted file mode 120000 index 736720fb3b7..00000000000 --- a/test/fallback/completions/svnlook.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/svnlook.bash \ No newline at end of file diff --git a/test/fallback/completions/task.bash b/test/fallback/completions/task.bash deleted file mode 120000 index f3b4e452f82..00000000000 --- a/test/fallback/completions/task.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/task.bash \ No newline at end of file diff --git a/test/fallback/completions/tokio-console.bash b/test/fallback/completions/tokio-console.bash deleted file mode 120000 index d16f0159d33..00000000000 --- a/test/fallback/completions/tokio-console.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/tokio-console.bash \ No newline at end of file diff --git a/test/fallback/completions/udevadm.bash b/test/fallback/completions/udevadm.bash deleted file mode 120000 index 1ac9114e7a3..00000000000 --- a/test/fallback/completions/udevadm.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/udevadm.bash \ No newline at end of file diff --git a/test/fallback/completions/umount.bash b/test/fallback/completions/umount.bash deleted file mode 120000 index 099a9bdc76a..00000000000 --- a/test/fallback/completions/umount.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/umount.bash \ No newline at end of file diff --git a/test/fallback/completions/umount.linux.bash b/test/fallback/completions/umount.linux.bash deleted file mode 120000 index 8fe37fac1fc..00000000000 --- a/test/fallback/completions/umount.linux.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/umount.linux.bash \ No newline at end of file diff --git a/test/fallback/completions/uvx.bash b/test/fallback/completions/uvx.bash deleted file mode 120000 index 2f7839970d2..00000000000 --- a/test/fallback/completions/uvx.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/uvx.bash \ No newline at end of file diff --git a/test/fallback/completions/vault.bash b/test/fallback/completions/vault.bash deleted file mode 120000 index 51cec1dddcf..00000000000 --- a/test/fallback/completions/vault.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/vault.bash \ No newline at end of file diff --git a/test/fallback/completions/wasmer.bash b/test/fallback/completions/wasmer.bash deleted file mode 120000 index ede8fa153d1..00000000000 --- a/test/fallback/completions/wasmer.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/wasmer.bash \ No newline at end of file diff --git a/test/fallback/completions/write.bash b/test/fallback/completions/write.bash deleted file mode 120000 index d93095c403b..00000000000 --- a/test/fallback/completions/write.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/write.bash \ No newline at end of file diff --git a/test/fallback/completions/xm.bash b/test/fallback/completions/xm.bash deleted file mode 120000 index 24fa3115003..00000000000 --- a/test/fallback/completions/xm.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/xm.bash \ No newline at end of file diff --git a/test/fallback/completions/yq.bash b/test/fallback/completions/yq.bash deleted file mode 120000 index f0d97d11e22..00000000000 --- a/test/fallback/completions/yq.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/yq.bash \ No newline at end of file diff --git a/test/fallback/completions/yum.bash b/test/fallback/completions/yum.bash deleted file mode 120000 index 87e093a734f..00000000000 --- a/test/fallback/completions/yum.bash +++ /dev/null @@ -1 +0,0 @@ -../../../completions-fallback/yum.bash \ No newline at end of file diff --git a/test/fallback/update-fallback-links b/test/fallback/update-fallback-links deleted file mode 100755 index f4a45148714..00000000000 --- a/test/fallback/update-fallback-links +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -is_tracked_by_git() -{ - git ls-files --error-unmatch "$1" &>/dev/null -} - -cd "$(dirname "$0")/completions" -for f in *; do - if [[ -L $f ]] && is_tracked_by_git "$f"; then - git rm -f "$f" - fi -done -for f in ../../../completions-fallback/*.bash; do - if is_tracked_by_git "$f"; then - ln -sf "$f" "${f##*/}" - git add --verbose "${f##*/}" - fi -done diff --git a/test/t/conftest.py b/test/t/conftest.py index dbd139df7ca..dc8d848304e 100644 --- a/test/t/conftest.py +++ b/test/t/conftest.py @@ -188,19 +188,26 @@ def get_testdir(): return os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) -@pytest.fixture(scope="class") -def bash(request) -> pexpect.spawn: - logfile: Optional[TextIO] = None - histfile = None - tmpdir = None - bash = None +@pytest.fixture(scope="session") +def test_session_tmpdir(tmp_path_factory) -> Path: + tmpdir = tmp_path_factory.mktemp("bash-completion-test_") - if os.environ.get("BASH_COMPLETION_TEST_LOGFILE"): - logfile = open(os.environ["BASH_COMPLETION_TEST_LOGFILE"], "w") - elif os.environ.get("CI"): - logfile = sys.stdout + user_dir_1 = tmpdir / "bash-completion" + user_dir_2 = tmpdir / "bash-completion-fallback" + user_dir_1.mkdir() + user_dir_2.mkdir() - testdir = get_testdir() + bash_completion_root = Path(get_testdir()).parent + + completions_1 = user_dir_1 / "completions" + completions_2 = user_dir_2 / "completions" + completions_1.symlink_to(bash_completion_root / "completions-core") + completions_2.symlink_to(bash_completion_root / "completions-fallback") + + helpers_1 = user_dir_1 / "helpers-core" + helpers_2 = user_dir_2 / "helpers-core" + helpers_1.symlink_to(bash_completion_root / "helpers-core") + helpers_2.symlink_to(bash_completion_root / "helpers-core") # Create an empty temporary file for HISTFILE. # @@ -217,14 +224,26 @@ def bash(request) -> pexpect.spawn: # adopted because "test/config/bashrc" is loaded after the # history is read from the history file. # - histfile = tempfile.NamedTemporaryFile( - prefix="bash-completion-test_", delete=False - ) + histfile = tmpdir / "bash_history" + histfile.touch() + + return tmpdir - try: - # release the file handle so that Bash can open the file. - histfile.close() +@pytest.fixture(scope="class") +def bash(request, test_session_tmpdir) -> pexpect.spawn: + logfile: Optional[TextIO] = None + tmpdir = None + bash = None + + if os.environ.get("BASH_COMPLETION_TEST_LOGFILE"): + logfile = open(os.environ["BASH_COMPLETION_TEST_LOGFILE"], "w") + elif os.environ.get("CI"): + logfile = sys.stdout + + testdir = get_testdir() + + try: env = os.environ.copy() env.update( dict( @@ -234,7 +253,8 @@ def bash(request) -> pexpect.spawn: INPUTRC="%s/config/inputrc" % testdir, TERM="dumb", LC_COLLATE="C", # to match Python's default locale unaware sort - HISTFILE=histfile.name, + _comp__test_session_tmpdir=str(test_session_tmpdir), + HISTFILE=str(test_session_tmpdir / "bash_history"), ) ) @@ -353,11 +373,6 @@ def bash(request) -> pexpect.spawn: bash.close() if tmpdir: tmpdir.cleanup() - if histfile: - try: - os.remove(histfile.name) - except OSError: - pass if logfile and logfile != sys.stdout: logfile.close()