]> kaliko git repositories - mpd-sima.git/blobdiff - data/bash/completion.sh
Update bash completion
[mpd-sima.git] / data / bash / completion.sh
index be0d4447f1772a87ab7b7e406c420c2a73812957..f932c9a95a8485d2dfc4aff088f7b80610146a0b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2010, 2011, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2010, 2011, 2013, 2014, 2015, 2021, 2022 kaliko <kaliko@azylum.org>
 #
 #  This file is part of MPD_sima
 #
@@ -31,10 +31,20 @@ _sima() {
           -l --log \
           -v --log-level \
           -S --host \
-          -P --mpd_port \
+          -P --port \
           -h --help --version \
-          --var_dir \
-          -d --daemon"
+          --var-dir \
+          -d --daemon \
+          config-test \
+          create-db \
+          generate-config \
+          purge-history \
+          bl-view \
+          bl-add-artist \
+          bl-add-album \
+          bl-add-track \
+          bl-delete \
+          random"
 
     if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
         COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
@@ -42,80 +52,22 @@ _sima() {
     fi
 
     case "${prev}" in
-        --var_dir)
+        --var-dir)
             _filedir -d
             ;;
         -v|--log-level)
             COMPREPLY=( $(compgen -W "debug info warning error" -- ${cur} ))
             ;;
-        -p|--pid|-l|--log)
-            _filedir
-            ;;
-        -c|--config)
-            _filedir
-            if [ -z $XDG_DATA_HOME ]; then
-                local confnames=$(for x in $(ls -1 $HOME/.config/mpd_sima/*.cfg 2>/dev/null) ; do echo "${x##*//}"; done)
-            else
-                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)
-            fi
-            COMPREPLY+=( $(compgen -W "${confnames}") )
-            return 0
-            ;;
-        --host|-S)
-            COMPREPLY=( $(compgen -A hostname ${cur}) )
-            ;;
-        *)
-            ;;
-    esac
-}
-complete -F _sima mpd_sima
-complete -F _sima mpd-sima
-
-_art_names_list() {
-    local IFS=$'\n'
-    compgen -W "${artists}" -- ${cur}
-}
-
-_simadb_cli() {
-    local cur prev opts artists
-    local IFS=$'\n'
-    COMPREPLY=()
-    _get_comp_words_by_ref cur prev
-    opts="--add_similarity -a --remove_similarity --remove_artist \
-    --purge_hist --view_artist --view_all \
-    --bl_curr_trk --bl_curr_art --bl_curr_al --bl_art --remove_bl --view_bl \
-    --dbfile -d \
-    --host -S --port -P \
-    --reciprocal -r --check_names -c \
-    --version -h --help"
-    opts=$(echo $opts | sed 's/ /\n/g')
-
-    if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
-        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
-        return 0
-    fi
-
-    case "${prev}" in
-        --bl_curr*|--view_bl|--view_all|--purge_hist|--version|--help|-h)
-            return 0
-            ;;
-        -d|--dbfile)
+        -p|--pid|-l|--log|-c|--config)
             _filedir
             ;;
         --host|-S)
-            COMPREPLY=( $(compgen -A hostname ${cur}) )
-            ;;
-        -a|--add_similarity|--view_artist|-v|--bl_art)
-            if [ -x /usr/bin/mpc ]; then
-                artists=$(for x in $(/usr/bin/mpc list artist) ; do echo "'${x}'"; done)
-                COMPREPLY=( $(compgen -W "${artists}" -- ${cur}) )
-                return 0
-            fi
-            # It should also complete artist name when the string ends with a comma
-            return 0
+            _known_hosts_real -a "${cur}"
             ;;
         *)
+            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
             ;;
     esac
 }
-complete -F _simadb_cli simadb_cli
+complete -o nosort -F _sima mpd_sima
+complete -o nosort -F _sima mpd-sima