[arch-dev-public] [PATCH] Added bash_completion file
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
On Sat, Feb 12, 2011 at 11:55 AM, Eric Bélanger <snowmaniscool@gmail.com> wrote:
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com> --- Makefile | 4 +++ bash_completion | 69
A little issue here is that the package completion for archco and communityco list all package in all repos even if you need the other script to checkout them or if they are in non-official repo. The obvious solution of adding the repos after the "\pacman -$1" line doesn't work. I tried different things but I wasn't able to make it work. Probably someone with more experience with bash_completion files will be able to do it.
participants (1)
-
Eric Bélanger