]> kaliko git repositories - mpd-sima.git/blob - data/bash/completion.sh
Releasing 0.13.1
[mpd-sima.git] / data / bash / completion.sh
1 # Copyright (c) 2010, 2011, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
2 #
3 #  This file is part of MPD_sima
4 #
5 #  MPD_sima is free software: you can redistribute it and/or modify
6 #  it under the terms of the GNU General Public License as published by
7 #  the Free Software Foundation, either version 3 of the License, or
8 #  (at your option) any later version.
9 #
10 #  MPD_sima is distributed in the hope that it will be useful,
11 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #  GNU General Public License for more details.
14 #
15 #  You should have received a copy of the GNU General Public License
16 #  along with MPD_sima.  If not, see <http://www.gnu.org/licenses/>.
17 #
18 #
19
20 # Bash completion file
21 #
22 # On debian system either place this file in etc/bash_completion.d/ or source it
23 # in your barshrc.
24
25 _sima() {
26     local cur prev opts
27     COMPREPLY=()
28     _get_comp_words_by_ref cur prev
29     opts="-c --config \
30           -p --pid \
31           -l --log \
32           -v --log-level \
33           -S --host \
34           -P --port \
35           -h --help --version \
36           --var_dir \
37           -d --daemon"
38
39     if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
40         COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
41         return 0
42     fi
43
44     case "${prev}" in
45         --var_dir)
46             _filedir -d
47             ;;
48         -v|--log-level)
49             COMPREPLY=( $(compgen -W "debug info warning error" -- ${cur} ))
50             ;;
51         -p|--pid|-l|--log)
52             _filedir
53             ;;
54         -c|--config)
55             _filedir
56             if [ -z $XDG_DATA_HOME ]; then
57                 local confnames=$(for x in $(ls -1 $HOME/.config/mpd_sima/*.cfg 2>/dev/null) ; do echo "${x##*//}"; done)
58             else
59                 local confnames=$(for x in $(ls -1 $HOME/.config/mpd_sima/*.cfg $XDG_DATA_HOME/mpd_sima/*.cfg 2>/dev/null) ; do echo "${x##*//}"; done)
60             fi
61             COMPREPLY+=( $(compgen -W "${confnames}") )
62             return 0
63             ;;
64         --host|-S)
65             COMPREPLY=( $(compgen -A hostname ${cur}) )
66             ;;
67         *)
68             ;;
69     esac
70 }
71 complete -F _sima mpd_sima
72 complete -F _sima mpd-sima
73
74 _simadb_cli() {
75     local cur prev opts artists
76     local IFS=$'\n'
77     COMPREPLY=()
78     _get_comp_words_by_ref cur prev
79     opts="--purge_hist --view_artist --view_all \
80     --bl_curr_trk --bl_curr_art --bl_curr_al --bl_art --remove_bl --view_bl \
81     --dbfile -d \
82     --host -S --port -P \
83     --version -h --help"
84     opts=$(echo $opts | sed 's/ /\n/g')
85
86     if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
87         COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
88         return 0
89     fi
90
91     case "${prev}" in
92         --bl_curr*|--view_bl|--view_all|--purge_hist|--version|--help|-h)
93             return 0
94             ;;
95         -d|--dbfile)
96             _filedir
97             ;;
98         --host|-S)
99             COMPREPLY=( $(compgen -A hostname ${cur}) )
100             ;;
101         *)
102             ;;
103     esac
104 }
105 complete -F _simadb_cli simadb_cli