This file is indexed.

/usr/share/bash-completion/completions/backintime is in backintime-common 1.1.12-2.

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
#extract profile and config arguments
_bit_extr_opts()
{
    local c=0 last="" opts=""
    while [[ $c -le ${COMP_CWORD} ]]; do
        case "${last}" in
            --profile|--profile-id|--config)
                if [[ ${COMP_WORDS[$c]} != -* ]]; then
                    opts="${opts} ${last} ${COMP_WORDS[$c]}"
                fi ;;
        esac
        last=${COMP_WORDS[$c]}
        c=$[$c+1]
    done
    echo "${opts}"
}

#return a list of all snapshots
_bit_snapshots_list()
{
    backintime$(_bit_extr_opts) --quiet snapshots-list | awk '{print $2}'
}

_backintime()
{
    local cur prev actions opts pw_cache_commands
    local cur_action='' pos_action=0 c=0
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    opts="--profile --profile-id --quiet --config --version --license       \
          --help --debug --checksum --no-crontab --keep-mount --delete      \
          --local-backup --no-local-backup"
    actions="backup backup-job snapshots-path snapshots-list                \
             snapshots-list-path last-snapshot last-snapshot-path unmount    \
             benchmark-cipher pw-cache decode remove restore check-config"
    pw_cache_commands="start stop restart reload status"

    #extract the current action
    while [[ $c -le $[${COMP_CWORD} - 1] ]]; do
        case ${actions} in
            *"${COMP_WORDS[$c]}"*)
                    cur_action="${COMP_WORDS[$c]}"
                    pos_action=${c}
                    break ;;
        esac
        c=$[${c}+1]
    done

    case "${cur_action}" in
        restore)
                if [[ ${cur} != -* ]]; then
                    #which positional argument is $cur?
                    case $[${COMP_CWORD}-${pos_action}] in
                        #first arg is a filename
                        1) _filedir
                             return 0
                             ;;
                        #second arg is a dirname
                        2) _filedir -d
                             return 0
                             ;;
                        #third arg is snapshot-id
                        3)   COMPREPLY=( $(compgen -W "$(_bit_snapshots_list)" -- ${cur}) )
                             return 0
                             ;;
                    esac
                fi
                ;;
        remove|remove-and-do-not-ask-again)
                if [[ ${cur} != -* ]]; then
                    #snapshot-ids
                    COMPREPLY=( $(compgen -W "$(_bit_snapshots_list)" -- ${cur}) )
                    return 0
                else
                    #other args
                    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                    return 0
                fi
                ;;
    esac

    case "${prev}" in
        --config|decode|restore)
            if [[ ${cur} != -* ]]; then
                _filedir
                return 0
            fi ;;
        pw-cache)
            if [[ ${cur} != -* ]]; then
                COMPREPLY=( $(compgen -W "${pw_cache_commands}" -- ${cur}) )
                return 0
            fi ;;
        *)
            if [[ -z "${cur_action}" ]]; then
                opts="${opts} ${actions}"
            fi
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
    esac
}
complete -F _backintime backintime
complete -F _backintime backintime-qt4