This file is indexed.

/usr/share/bash-completion/completions/wb_command is in connectome-workbench 1.2.3+git41-gc4c6c90-2.

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

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
# bash completion for wb_command

#  Copyright (C) 2016  Washington University School of Medicine
#
#  Permission is hereby granted, free of charge, to any person obtaining
#  a copy of this software and associated documentation files (the
#  "Software"), to deal in the Software without restriction, including
#  without limitation the rights to use, copy, modify, merge, publish,
#  distribute, sublicense, and/or sell copies of the Software, and to
#  permit persons to whom the Software is furnished to do so, subject to
#  the following conditions:
#
#  The above copyright notice and this permission notice shall be included
#  in all copies or substantial portions of the Software.
#
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
#  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
#  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
#  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
#  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
#  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
#  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

#put this file in (or link to it from) /etc/bash_completion.d or copy contents to ~/.bash_completion

function _wb_command()
{
    #debug must be "false" or "true", because it *executes* it (because i'm lazy)
    local debug=false
    COMPREPLY=()
    #use bash-completion's hacks to deal with the word splitting we don't want
    local cur words cword
    #use only space for splitting
    _get_comp_words_by_ref -n "'"'"><=;|&(:' cur words cword
    #NOTE: cur has the partial word that is *before* the cursor, but words has the entire word under the cursor
    #wb_command doesn't need to know what the current partial word is, it spits out space-separated glob patterns and the like
    #but we will need it in compgen afterwards
    local wbopts=""
    if ! shopt -q extglob
    then
        #bash-completion enables extglob, but work around it if it isn't set
        wbopts="-noextglob"
    fi
    #only give wb_command the options coming *before* the one to complete, not even the partial word to complete
    #also don't include the executable name ${words[0]}
    $debug && echo
    $debug && echo "exe call: wb_command -completion $wbopts ${words[@]:1:$((cword - 1))}"
    local exereplyraw=`wb_command -completion $wbopts "${words[@]:1:$((cword - 1))}" 2> /dev/null`
    local exestatus=$?
    if [[ $exestatus != 0 ]]
    then
        return 1
    fi
    $debug && echo "exereplayraw: $exereplyraw"
    #need to cause backslashes to escape spaces...
    local -a exereply
    IFS=' ' read -a exereply <<< "$exereplyraw"
    $debug && echo "exereply: ${exereply[@]}"
    for ((i = 0; i < ${#exereply[@]}; i += 2))
    do
        $debug && echo "key: ${exereply[$i]}"
        $debug && echo "value: ${exereply[$((i + 1))]}"
        case "${exereply[$i]}" in
            fileglob)
                #bash_completion itself uses -f -X for file extension matching
                #using -G requires manually adding $cur before the pattern
                COMPREPLY+=(`compgen -f -X "!${exereply[$((i + 1))]}" -- "$cur"`)
            ;;
            wordlist)
                #for the things accepted as bool, maybe other uses - happens to function like "option" for now
                COMPREPLY+=(`compgen -W "${exereply[$((i + 1))]}" -- "$cur"`)
            ;;
        esac
    done
    $debug && echo "COMPREPLY: ${COMPREPLY[@]}"
    return 0
}

complete -o filenames -o bashdefault -o default -F _wb_command wb_command

#completion for wb_shortcuts - could be a separate file, but this is simpler

function _wb_shortcuts ()
{
    COMPREPLY=()
    #use bash-completion's hacks to deal with the word splitting we don't want
    #we can only complete the first word, so only get cur and cword
    local cur cword
    #use only space for splitting
    _get_comp_words_by_ref -n "'"'"><=;|&(:' cur cword
    if ((cword != 1))
    then
        return 0
    fi
    local -a switches
    readarray -t switches < <(wb_shortcuts -list-functions | awk '{print $1}')
    COMPREPLY=(`compgen -W "${switches[*]}" -- "$cur"`)
}

complete -o filenames -o bashdefault -o default -F _wb_shortcuts wb_shortcuts