diff options
Diffstat (limited to 'bin/completion/dconf')
-rw-r--r-- | bin/completion/dconf | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/bin/completion/dconf b/bin/completion/dconf new file mode 100644 index 0000000..22353b7 --- /dev/null +++ b/bin/completion/dconf @@ -0,0 +1,44 @@ + +# Check for bash +[ -z "$BASH_VERSION" ] && return + +#################################################################################################### + +__dconf() { + local choices + + case "${COMP_CWORD}" in + 1) + choices=$'help \nread \nlist \nwrite \nreset \nupdate \nlock \nunlock \nwatch \ndump \nload ' + ;; + + 2) + case "${COMP_WORDS[1]}" in + help) + choices=$'help \nread \nlist \nwrite \nreset \nupdate \nlock \nunlock \nwatch \ndump \nload ' + ;; + list|dump|load) + choices="$(dconf _complete / "${COMP_WORDS[2]}")" + ;; + read|list|write|lock|unlock|watch|reset) + choices="$(dconf _complete '' "${COMP_WORDS[2]}")" + ;; + esac + ;; + + 3) + case "${COMP_WORDS[1]} ${COMP_WORDS[2]}" in + reset\ -f) + choices="$(dconf _complete '' "${COMP_WORDS[3]}")" + ;; + esac + ;; + esac + + local IFS=$'\n' + COMPREPLY=($(compgen -W "${choices}" "${COMP_WORDS[$COMP_CWORD]}")) +} + +#################################################################################################### + +complete -o nospace -F __dconf dconf |