summaryrefslogtreecommitdiffstats
path: root/scripts/dscextract.bash_completion
blob: bf7eadc6cdf96f0f14bbc6c4c43096aa85319f25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# /usr/share/bash-completion/completions/dscextract
# Bash command completion for ‘dscextract(1)’.
# Documentation: ‘bash(1)’, section “Programmable Completion”.

# Copyright © 2015, Nicholas Bamber <nicholas@periapt.co.uk>

_dscextract()
{
    local cur prev words cword _options
    _init_completion || return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '-f' -- "$cur" ) )
    elif [[ "$prev" == -f ]]; then
        declare -a _compreply=( $( compgen -o filenames -G '*.dsc' ) )
        COMPREPLY=( $( compgen -W "${_compreply[*]}"  -- "$cur" ) )
    elif [[ "$prev" == *.dsc ]]; then
        declare -a _compreply=( $( tar tvf ${prev/.dsc/.debian.tar.*} 2>/dev/null | sed 's! \+! !g' | cut -d' ' -f6 ) )
        COMPREPLY=( $( compgen -W "${_compreply[*]}"  -- "$cur" ) )
    else
        declare -a _compreply=( $( compgen -W '-f' -o filenames -G '*.dsc' ) )
        COMPREPLY=( $( compgen -W "${_compreply[*]}"  -- "$cur" ) )
    fi

    return 0
} && complete -F _dscextract dscextract


# Local variables:
# coding: utf-8
# mode: shell-script
# indent-tabs-mode: nil
# End:
# vim: fileencoding=utf-8 filetype=sh expandtab shiftwidth=4 :