Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com> --- Makefile | 4 +++ bash_completion | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 0 deletions(-) create mode 100644 bash_completion diff --git a/Makefile b/Makefile index bedd23f..150353e 100644 --- a/Makefile +++ b/Makefile @@ -47,6 +47,9 @@ install: install -m 644 pacman-staging.conf $(DESTDIR)/usr/share/devtools install -m 644 pacman-multilib.conf $(DESTDIR)/usr/share/devtools install -m 644 pacman-multilib-testing.conf $(DESTDIR)/usr/share/devtools + # install bash completion + install -d -m755 $(DESTDIR)/etc/bash_completion.d + install -m 644 bash_completion $(DESTDIR)/etc/bash_completion.d/devtools uninstall: # remove all files we installed @@ -85,6 +88,7 @@ uninstall: rm $(DESTDIR)/usr/share/devtools/pacman-staging.conf rm $(DESTDIR)/usr/share/devtools/pacman-multilib.conf rm $(DESTDIR)/usr/share/devtools/pacman-multilib-testing.conf + rm $(DESTDIR)/etc/bash_completion.d/devtools dist: git archive --format=tar --prefix=devtools-$(V)/ $(V) | gzip -9 > devtools-$(V).tar.gz diff --git a/bash_completion b/bash_completion new file mode 100644 index 0000000..cd959fc --- /dev/null +++ b/bash_completion @@ -0,0 +1,69 @@ +_devtools_compgen() { + local i r + COMPREPLY=($(compgen -W '$*' -- "$cur")) + for ((i=1; i < ${#COMP_WORDS[@]}-1; i++)); do + for r in ${!COMPREPLY[@]}; do + if [[ ${COMP_WORDS[i]} = ${COMPREPLY[r]} ]]; then + unset 'COMPREPLY[r]'; break + fi + done + done +} + +_archco_pkg() { + _devtools_compgen "$( + \pacman -$1 + )" +} + +_archco() { + local cur prev + COMPREPLY=() + cur=$(_get_cword) + prev=${COMP_WORDS[COMP_CWORD-1]} + + _archco_pkg Slq + true +} && +complete -F _archco archco communityco + +_makechrootpkg() { + local cur + COMPREPLY=() + _get_comp_words_by_ref cur + + case $cur in + -*) + COMPREPLY=( $( compgen -W '-I -c -d -h -l -r -u' -- "$cur" ) ) + ;; + *) + _filedir + return 0 + ;; + esac + + true +} && +complete -F _makechrootpkg makechrootpkg + +_mkarchroot() { + local cur + COMPREPLY=() + _get_comp_words_by_ref cur + + case $cur in + -*) + COMPREPLY=( $( compgen -W '-C -M -c -f -h -n -r -u' -- "$cur" ) ) + ;; + *) + _filedir + return 0 + ;; + esac + + true +} && +complete -F _mkarchroot mkarchroot + + +# ex:et ts=2 sw=2 ft=sh -- 1.7.4.1