File: dpkg-source

package info (click to toggle)
bash-completion 1%3A2.1-4.3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 7,740 kB
  • sloc: exp: 8,230; makefile: 948; sh: 727; perl: 59; python: 26; xml: 13; ansic: 6
file content (107 lines) | stat: -rw-r--r-- 3,587 bytes parent folder | download | duplicates (4)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# Debian dpkg-source completion                            -*- shell-script -*-

_dpkg_source()
{
    local cur prev words cword
    _init_completion || return

    local options work i action packopts unpackopts fields

    packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sr -ss -sA -sK -sP \
              -sU -sR"
    unpackopts="-sp -sn -su"
    options="-x -b $packopts $unpackopts"
    fields="Format Source Version Binary Maintainer Uploader Architecture \
            Standards-Version Build-Depends Files"

    action="options"
    for (( i=0; i < ${#words[@]}-1; i++ )); do
        if [[ ${words[$i]} == "-x" ]]; then
            action=unpack
        elif [[ ${words[$i]} == "-b" ]]; then
            action=pack
        elif [[ ${words[$i]} == "-h" ]]; then
            action=help
        fi
    done

    case $action in
        unpack)
            case $prev in
                -x)
                    _filedir -d
                    _filedir 'dsc'
                    return 0
                    ;;
                *)
                    COMPREPLY=( $( compgen -W "$unpackopts" -- "$cur" ) )
                    _filedir -d
                    _filedir
                    return 0
                    ;;
            esac
            return 0
            ;;
        pack)
            case $prev in
                -b)
                    _filedir -d
                    return 0
                    ;;
                -c|-l|-T|-i|-I)
                    # -c: get controlfile
                    # -l: get per-version info from this file
                    # -T: read variables here, not debian/substvars
                    # -i: <regexp> filter out files to ignore diffs of.
                    # -I: filter out files when building tarballs.
                    # return directory names and file names
                    _filedir -d
                    _filedir
                    return 0
                    ;;
                -F)
                    # -F: force change log format
                    COMPREPLY=( $( command ls /usr/lib/dpkg/parsechangelog ) )
                    return 0
                    ;;
                -V|-D)
                    # -V: set a substitution variable
                    # we don't know anything about possible variables or values
                    # so we don't try to suggest any completion.
                    COMPREPLY=()
                    return 0
                    ;;
                -D)
                    # -D: override or add a .dsc field and value
                    # if $cur doesn't contain a = yet, suggest variable names
                    if [[ "$cur" == *=* ]]; then
                        # $cur contains a "="
                        COMPREPLY=()
                        return 0
                    else
                        COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) )
                        return 0
                    fi
                    ;;
                -U)
                    # -U: remove a field
                    # Suggest possible fieldnames
                    COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) )
                    return 0
                    ;;
                *)
                    COMPREPLY=( $( compgen -W "$packopts $unpackopts" -- "$cur" ) )
                    return 0
                    ;;
            esac
            return 0
            ;;
        *)
            COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
            return 0
            ;;
    esac
} &&
complete -F _dpkg_source dpkg-source

# ex: ts=4 sw=4 et filetype=sh