]> kaliko git repositories - mpd-sima.git/blob - data/bash/completion.sh
d1d6b64b4214dc83510a7cff24c0bfdb3097694a
[mpd-sima.git] / data / bash / completion.sh
1 # Copyright (c) 2010, 2011, 2013, 2014, 2015 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
76     local IFS=$'\n'
77     COMPREPLY=()
78     _get_comp_words_by_ref cur prev
79     opts="--purge_hist \
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         --check_names -c \
84         --version -h --help"
85     opts=$(echo $opts | sed 's/ /\n/g')
86
87     if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
88         COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
89         return 0
90     fi
91
92     case "${prev}" in
93         --bl_curr*|--view_bl|--view_all|--purge_hist|--version|--help|-h)
94             return 0
95             ;;
96         -d|--dbfile)
97             _filedir
98             ;;
99         --host|-S)
100             COMPREPLY=( $(compgen -A hostname ${cur}) )
101             ;;
102         *)
103             ;;
104     esac
105 }
106 complete -F _simadb_cli simadb_cli