This file is indexed.

/etc/bash_completion.d/wajig is in wajig 2.13.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
have grep-status && {
_comp_dpkg_installed_packages()
{
    grep-status -P -e "^$1" -a -FStatus 'install ok installed' -n -s Package
}
} || {
_comp_dpkg_installed_packages()
{
    command grep -A 1 "Package: $1" /var/lib/dpkg/status | \
        command grep -B 1 -Ee "ok installed|half-installed|unpacked| \
            half-configured" \
            -Ee "^Essential: yes" | \
        command grep "Package: $1" | cut -d\  -f2
}
}

have grep-status && {
_comp_dpkg_hold_packages()
{
    grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package
}
} || {
_comp_dpkg_hold_packages()
{
    command grep -B 2 'hold' /var/lib/dpkg/status | \
        command grep "Package: $1" | cut -d\  -f2
}
}

have wajig &&
_wajig()
{
    local cur dashoptions prev special i

    COMPREPLY=()
    _get_comp_words_by_ref cur prev

    dashoptions='-h --help -V --version'

    for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
        if [[ ${COMP_WORDS[i]} == \
         @(addcdrom|addrepo|aptlog|auto-alts|auto-clean|auto-download|autoremove|build|
         build-deps|changelog|clean|contents|daily-upgrade|dependents|describe|
         describe-new|details|dist-upgrade|download|editsources|extract|
         fix-configure|fix-install|fix-missing|force|hold|info|init|install|
         install-suggested|integrity|large|lastupdate|list-alternatives|
         list-cache|list-commands|list-daemons|list-files|list-hold|list-installed|
         list-log|list-names|list-packages|list-scripts|list-section|list-sections|
         list-status|madison|move|new|new-detail|news|new-upgrades|nonfree|
         orphans|policy|purge|purge-orphans|purge-removed|rbuilddeps|readme|
         rec-download|recommended|reconfigure|reinstall|reload|remove|
         remove-orphans|repackage|reportbug|restart|rpm2deb|rpminstall|
         search|searchapt|show|sizes|snapshot|source|start|status|status-match|
         stop|tasksel|todo|toupgrade|tutorial|unhold|unofficial|
         update|update-alternatives|update-pci-ids|update-usb-ids|upgrade|
         upgrade-security|verify|versions|which-package) ]];
         then special=${COMP_WORDS[i]}
        fi
    done

    if [[ -n "$special" ]]; then
       case $special in
           install|distupgrade|download|show|changelog|builddeps|dependents|describe|details|policy|recdownload)
               COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
               if [[ "$special" == "install" ]]; then
                   _filedir
               fi
               return 0
               ;;
           purge|remove|reinstall|listinstalled|hold|news|readme|recommended|reconfigure|reload|repackage|*start|status|stop|todo|verify)
               COMPREPLY=( $( _comp_dpkg_installed_packages "$cur" ) )
               return 0
               ;;
           unhold)
               COMPREPLY=( $( _comp_dpkg_hold_packages "$cur" ) )
               return 0
               ;;
           contents|extract|info|rpm2deb|rpminstall)
               _filedir
               ;;
       esac
    fi

    case $prev in
        # don't complete anything if these options are found
        autoclean|clean|search|upgrade|update)
            return 0
            ;;
        -S)
            _filedir
            return 0
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W "$dashoptions" -- "$cur" ) )
    elif [[ -z "$special" ]]; then
        commands=(addcdrom addrepo aptlog auto-alts auto-clean auto-download auto-remove
            build build-deps changelog clean contents daily-upgrade dependents
            describe describe-new details dist-upgrade download editsources
            extract fix-configure fix-install fix-missing force hold info init
            install install-suggested integrity large lastupdate list-alternatives
            list-cache list-commands list-daemons list-files list-hold list-installed
            list-log list-names list-packages list-scripts
            list-section list-sections list-status
            madison move new new-detail news new-upgrades nonfree orphans
            policy purge purge-orphans purge-removed rbuilddeps readme
            rec-download recommended reconfigure reinstall reload remove
            remove-orphans repackage reportbug restart rpm2deb rpminstall
            search searchapt show sizes snapshot source start status
            status-match stop tasksel todo toupgrade tutorial unhold
            unofficial update update-alternatives update-pci-ids update-usb-ids
            upgrade upgrade-security verify versions which-package)

        local option oldNoCaseMatch=$(shopt -p nocasematch)
        shopt -s nocasematch
        COMPREPLY=( $( for command in "${commands[@]}"; do
                [[ ${command:0:${#cur}} == "$cur" ]] && printf '%s\n' $command
                done ) )
        eval "$oldNoCaseMatch" 2> /dev/null
    fi

    return 0
}
complete -F _wajig wajig

# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh