Skip to content

Commit 90162b0

Browse files
authored
Merge pull request #1365 from scop/feat/shtab-3rdparty
feat(shtab): add 3rd party fallback completion loader
2 parents 8ef53fa + 533244c commit 90162b0

File tree

7 files changed

+64
-23
lines changed

7 files changed

+64
-23
lines changed

completions/.gitignore

+18-11
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@
107107
/dropdb
108108
/dropuser
109109
/_dyff
110-
/_esc
111110
/edquota
111+
/_esc
112112
/etherwake
113113
/f77
114114
/f95
@@ -149,6 +149,7 @@
149149
/_gitsign
150150
/gkrellm2
151151
/_glab
152+
/_glances
152153
/_glen
153154
/_glow
154155
/gmake
@@ -222,9 +223,9 @@
222223
/_kubectl
223224
/_kubectl-argo-rollouts
224225
/_kubectl-kuttl
225-
/_kubescape
226226
/_kubelogin
227227
/_kubemqctl
228+
/_kubescape
228229
/_kubesec
229230
/_kubeshark
230231
/_kubespy
@@ -274,8 +275,8 @@
274275
/_mise
275276
/mkisofs
276277
/_mmctl
277-
/mogrify
278278
/_mockery
279+
/mogrify
279280
/_moldy
280281
/montage
281282
/mozilla-firefox
@@ -346,15 +347,15 @@
346347
/py.test-[23]
347348
/pydoc3
348349
/pylint-[23]
350+
/pypy
351+
/pypy3
352+
/pyston
353+
/pyston3
349354
/pytest-[23]
350355
/python2
351356
/python2.*
352357
/python3
353358
/python3.*
354-
/pypy
355-
/pypy3
356-
/pyston
357-
/pyston3
358359
/pyvenv-3.*
359360
/qemu-kvm
360361
/qemu-system-i386
@@ -385,16 +386,16 @@
385386
/_sentry-cli
386387
/setquota
387388
/sftp
388-
/shasum
389389
/sha1sum
390390
/sha224sum
391391
/sha384sum
392392
/sha512sum
393+
/shasum
393394
/sidedoor
394395
/_sinker
395396
/_skaffold
396-
/_slsa-verifier
397397
/slogin
398+
/_slsa-verifier
398399
/smbcacls
399400
/smbcquotas
400401
/smbget
@@ -420,14 +421,20 @@
420421
/_tendermint
421422
/_terraform
422423
/_tfctl
424+
/tightvncviewer
423425
/_tilt
424426
/_timoni
425427
/_tkn
426428
/_tkn-pac
427-
/tightvncviewer
429+
/_tldr
428430
/_todoist
429431
/_tofu
430432
/tracepath6
433+
/_trash
434+
/_trash-empty
435+
/_trash-list
436+
/_trash-put
437+
/_trash-restore
431438
/_trivy
432439
/typeset
433440
/_upctl
@@ -467,8 +474,8 @@
467474
/_xc
468475
/xpovray
469476
/xvnc4viewer
470-
/_ytt
471477
/ypcat
478+
/_ytt
472479
/_zarf
473480
/_zitadel
474481
/_zola

completions/Makefile.am

+23-12
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ cross_platform = 2to3 \
3838
bzip2 \
3939
_cal \
4040
cancel \
41-
_cargo \
4241
cardctl \
42+
_cargo \
4343
carton \
4444
ccache \
4545
ccze \
@@ -209,9 +209,9 @@ cross_platform = 2to3 \
209209
java \
210210
javaws \
211211
_jj \
212-
jq \
213212
jpegoptim \
214213
jps \
214+
jq \
215215
jshint \
216216
json_xs \
217217
jsonschema \
@@ -238,8 +238,8 @@ cross_platform = 2to3 \
238238
list_lists \
239239
list_members \
240240
list_owners \
241-
_look \
242241
locale-gen \
242+
_look \
243243
lpq \
244244
lpr \
245245
lrzip \
@@ -404,6 +404,7 @@ cross_platform = 2to3 \
404404
sh \
405405
sha256sum \
406406
shellcheck \
407+
_shtab \
407408
sitecopy \
408409
slabtop \
409410
_slackpkg \
@@ -425,8 +426,8 @@ cross_platform = 2to3 \
425426
sshow \
426427
_stern \
427428
strace \
428-
_stripe \
429429
strings \
430+
_stripe \
430431
_su \
431432
sudo \
432433
svcadm \
@@ -571,9 +572,9 @@ CLEANFILES = \
571572
_ansible-playbook \
572573
_ansible-pull \
573574
_ansible-vault \
575+
_apko \
574576
apropos \
575577
aptitude-curses \
576-
_apko \
577578
_aqua \
578579
_arduino-cli \
579580
_argo \
@@ -649,9 +650,9 @@ CLEANFILES = \
649650
_datree \
650651
dcop \
651652
_deck \
653+
_deno \
652654
_depot \
653655
_devspace \
654-
_deno \
655656
dfutool \
656657
_diesel \
657658
display \
@@ -665,8 +666,8 @@ CLEANFILES = \
665666
dropdb \
666667
dropuser \
667668
_dyff \
668-
_esc \
669669
edquota \
670+
_esc \
670671
etherwake \
671672
f77 \
672673
f95 \
@@ -717,6 +718,7 @@ CLEANFILES = \
717718
_gitsign \
718719
gkrellm2 \
719720
_glab \
721+
_glances \
720722
_glen \
721723
_glow \
722724
gmake \
@@ -790,9 +792,9 @@ CLEANFILES = \
790792
_kubectl \
791793
_kubectl-argo-rollouts \
792794
_kubectl-kuttl \
793-
_kubescape \
794795
_kubelogin \
795796
_kubemqctl \
797+
_kubescape \
796798
_kubesec \
797799
_kubeshark \
798800
_kubespy \
@@ -847,9 +849,9 @@ CLEANFILES = \
847849
lz4c \
848850
mailsnarf \
849851
_mattermost \
850-
_melange \
851852
md5sum \
852853
mdecrypt \
854+
_melange \
853855
mencoder \
854856
_metalctl \
855857
micropython \
@@ -991,11 +993,11 @@ CLEANFILES = \
991993
_sentry-cli \
992994
setquota \
993995
sftp \
994-
shasum \
995996
sha1sum \
996997
sha224sum \
997998
sha384sum \
998999
sha512sum \
1000+
shasum \
9991001
sidedoor \
10001002
_sinker \
10011003
_skaffold \
@@ -1026,14 +1028,20 @@ CLEANFILES = \
10261028
_tendermint \
10271029
_terraform \
10281030
_tfctl \
1031+
tightvncviewer \
10291032
_tilt \
10301033
_timoni \
10311034
_tkn \
10321035
_tkn-pac \
1033-
tightvncviewer \
1036+
_tldr \
10341037
_todoist \
10351038
_tofu \
10361039
tracepath6 \
1040+
_trash \
1041+
_trash-empty \
1042+
_trash-list \
1043+
_trash-put \
1044+
_trash-restore \
10371045
_trivy \
10381046
typeset \
10391047
_upctl \
@@ -1073,8 +1081,8 @@ CLEANFILES = \
10731081
_xc \
10741082
xpovray \
10751083
xvnc4viewer \
1076-
_ytt \
10771084
ypcat \
1085+
_ytt \
10781086
_zarf \
10791087
_zitadel \
10801088
_zola
@@ -1355,6 +1363,9 @@ symlinks: $(DATA)
13551363
javac javadoc
13561364
$(ss) koji \
13571365
arm-koji ppc-koji s390-koji sparc-koji
1366+
$(ss) _keyring \
1367+
_glances _tldr _trash _trash-empty _trash-list \
1368+
_trash-put _trash-restore
13581369
$(ss) ldapsearch \
13591370
ldapadd ldapcompare ldapdelete ldapmodify ldapmodrdn \
13601371
ldappasswd ldapwhoami

completions/_shtab

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# 3rd party completion loader for commands emitting -*- shell-script -*-
2+
# their completion using "$cmd --print-own-completion bash".
3+
# For example, https://github.com/iterative/shtab does.
4+
#
5+
# This serves as a fallback in case the completion is not installed otherwise.
6+
7+
eval -- "$("$1" --print-own-completion bash 2>/dev/null)"
8+
9+
# ex: filetype=sh

test/fallback/completions/shtab

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../completions/_shtab

test/t/Makefile.am

+1
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,7 @@ EXTRA_DIST = \
568568
test_sha512sum.py \
569569
test_shar.py \
570570
test_shellcheck.py \
571+
test_shtab.py \
571572
test_sitecopy.py \
572573
test_slabtop.py \
573574
test_slackpkg.py \

test/t/test_shtab.py

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import pytest
2+
3+
4+
class TestShtab:
5+
@pytest.mark.complete("shtab ", require_cmd=True)
6+
def test_basic(self, completion):
7+
assert not completion
8+
9+
@pytest.mark.complete("shtab -", require_cmd=True)
10+
def test_options(self, completion):
11+
assert completion

test/test-cmd-list.txt

+1
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ sha384sum
346346
sha512sum
347347
shar
348348
shellcheck
349+
shtab
349350
sitecopy
350351
slabtop
351352
slapt-get

0 commit comments

Comments
 (0)