File: rr_completion

package info (click to toggle)
rr 5.9.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,060 kB
  • sloc: ansic: 66,406; cpp: 57,678; python: 4,627; asm: 1,331; sh: 576; xml: 411; makefile: 30
file content (29 lines) | stat: -rw-r--r-- 873 bytes parent folder | download | duplicates (2)
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
# vi:syntax=sh
#
# completion script for rr commands (to be sourced)

_rr_subcmd_completion() {
    local cmd=$1
    local short_opts=$(rr help $cmd | sed -n 's/\s*-\([a-zA-Z]\),.*/-\1/p')
    local long_opts=$(rr help $cmd | sed -n 's/.*--\([^= ]*\).*/--\1/p')
    echo "$short_opts" "$long_opts"
}

_rr_completion() {
    COMPREPLY=()
    local rr_commands="$(rr --list-commands | cut -s -d ' ' -f 3)"

    # completion for rr
    if [ $COMP_CWORD -eq 1 ]; then
        COMPREPLY=( $( compgen -W "$rr_commands" -- "${COMP_WORDS[1]}" ) )
        return
    fi

    # completion for rr <command>'s options
    local cmd="$(echo "${COMP_WORDS[1]}" | tr -d '[:space:]')"

    if [ "$(echo $rr_commands | grep -w "$cmd")" ] ; then
        COMPREPLY=( $( compgen -W "$(_rr_subcmd_completion "$cmd")" -f -- "${COMP_WORDS[COMP_CWORD]}" ) )
    fi
}
complete -F _rr_completion rr