summaryrefslogtreecommitdiff
path: root/doc/ncmpcpp-completion.bash
blob: 49222c4b4a8b2e62fd9142ad6b5fd6227822a21f (plain)
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
# Installation:
# - If you have system bash completion, place this in /etc/bash_completion.d or
#   source it from $HOME/.bash_completion
# - If you don't have system bash completion, source this from your .bashrc

 _ncmpcpp ()
{
    local cur prev cmds opts

    cur="$2"
    prev="$3"
    cmds=`ncmpcpp --help 2>&1 | awk '/^  [a-z]+ /{print $1}'`;
    opts="`ncmpcpp --help 2>&1 | awk '/^  -.+,/{print $1 "\n" $2}' | sed -e 's/,//;$a--now-playing'`"

    case "$prev" in
        ncmpcpp)
        COMPREPLY=($(compgen -W '$opts $cmds' -- "$cur"))
        ;;
        --port|-p|--host|-h)
        COMPREPLY=()
        ;;
        --help|-?|--version|-v|--now-playing)
        return
        ;;
        next|pause|play|prev|stop|toggle|volume)
        opts="`echo $opts | sed -e 's/--port//;s/--host//;s/-p//;s/-h//'`"
        COMPREPLY=($(compgen -W '$opts' -- "$cur"))
        ;;
        *)
        COMPREPLY=($(compgen -W '$opts $cmds' -- "$cur"))
        ;;
    esac
}
complete -F _ncmpcpp ncmpcpp