diff --git a/completions/uscan b/completions/uscan new file mode 100644 index 00000000..f7cb8f37 --- /dev/null +++ b/completions/uscan @@ -0,0 +1,50 @@ +# uscan completion -*- shell-script -*- + +# List APT source packages +_apt_cache_sources() { + apt-cache dumpavail | command grep "^Source: $1" | cut -f2 -d" " +} + +# List APT source packages +_src_packages() { + compgen -W '$( _apt_cache_sources "$cur" )' -- "$cur" +} + +_uscan() +{ + local cur prev split + _init_completion -s || return + + case $prev in + --package) + COMPREPLY=( $( _src_packages )) + return 0 + ;; + --watchfile) + _filedir + return 0 + ;; + --destdir) + _filedir -d + return 0 + ;; + --timeout|--upstream-version|--download-version|--check-dirname-level|--check-dirname-regex) + COMPREPLY=( ) + return 0 + ;; + esac + + $split && return 0 + + COMPREPLY=( $( compgen -W ' --report --no-download --report-status + --download --destdir --force-download --pasv --no-pasv --symlink --rename + --repack --no-symlink --dehs --no-dehs --download-current-version --verbose + --no-verbose --debug --user-agent --useragent --no-conf --help + --version --timeout --package --upstream-version --watchfile + --download-version --check-dirname-level --check-dirname-regex + ' -- "$cur" ) ) + return 0 +} && +complete -F _uscan uscan + +# ex: ts=4 sw=4 et filetype=sh