diff options
Diffstat (limited to '')
-rw-r--r-- | completions/cpan2dist | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/completions/cpan2dist b/completions/cpan2dist index b5e59da..e53933d 100644 --- a/completions/cpan2dist +++ b/completions/cpan2dist @@ -1,37 +1,37 @@ # bash completion for cpan2dist -*- shell-script -*- -_cpan2dist() +_comp_cmd_cpan2dist() { - local cur prev words cword - _init_completion || return + local cur prev words cword comp_args + _comp_initialize -- "$@" || return case $prev in --format) # should remove ":" from COMP_WORDBREAKS, but doesn't work (?) - COMPREPLY=($(compgen -W '$(perl -MCPANPLUS::Dist -e \ - "print map { \"\$_\n\" } CPANPLUS::Dist->dist_types")' \ - -- "$cur")) + _comp_compgen_split -- "$(perl -MCPANPLUS::Dist -e \ + 'print map { "$_n" } CPANPLUS::Dist->dist_types')" return ;; --banlist | --ignorelist | --modulelist | --logfile) - _filedir + _comp_compgen_filedir return ;; esac if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help else local cpandirs=("$HOME/.cpanplus/" "$HOME/.cpan/source/modules/") - local packagelist + local dir packagelist= for dir in "${cpandirs[@]}"; do [[ -d $dir && -r "$dir/02packages.details.txt.gz" ]] && packagelist="$dir/02packages.details.txt.gz" done - [[ -v packagelist ]] && COMPREPLY=($(zgrep "^${cur//-/::}" \ - $packagelist 2>/dev/null | awk '{print $1}' | command sed -e 's/::/-/g')) + [[ $packagelist ]] && _comp_split COMPREPLY "$(zgrep "^${cur//-/::}" \ + "$packagelist" 2>/dev/null | _comp_awk '{print $1}' | + command sed -e 's/::/-/g')" fi } && - complete -F _cpan2dist -o default cpan2dist + complete -F _comp_cmd_cpan2dist -o default cpan2dist # ex: filetype=sh |