diff --git a/to_review/cpan2dist b/to_review/cpan2dist new file mode 100644 index 00000000..d266ddd9 --- /dev/null +++ b/to_review/cpan2dist @@ -0,0 +1,40 @@ +# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- +# ex: ts=8 sw=8 noet filetype=sh +# +# bash completion for cpan2dist + +have cpan2dist && +_cpan2dist() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + --format) + COMPREPLY=( $( compgen -W '$(perl -MCPANPLUS::Dist -e "print map { \"\$_\n\" } CPANPLUS::Dist->dist_types")' -- $cur ) ) + return 0 + ;; + --@(banlist|ignorelist|modulelist|logfile)) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --skiptest --force \ + --verbose --keepsource --makefile --buildprereq \ + --archive --flushcache --defaults --edit-metafile \ + --format --ban --banlist --ignore --ignorelist \ + --modulelist --logfile --timeout --set-config \ + --set-program --dist-opts --default-banlist \ + --default-ignorelist' -- $cur ) ) + else + COMPREPLY=( $( zgrep "^${cur//-/::}" \ + $HOME/.cpanplus/02packages.details.txt.gz 2>/dev/null \ + | awk '{print $1}' | sed -e 's/::/-/g' ) ) + fi +} && +complete -F _cpan2dist cpan2dist