# shellcheck shell=bash # Check for bash [ -z "$BASH_VERSION" ] && return #################################################################################################### __gresource() { local choices coffset section if [ "${COMP_CWORD}" -gt 2 ]; then if [ "${COMP_WORDS[1]}" = --section ]; then section=${COMP_WORDS[2]} coffset=2 else coffset=0 fi else coffset=0 fi case "$((COMP_CWORD-coffset))" in 1) choices=$'--section \nhelp \nsections \nlist \ndetails \nextract ' ;; 2) case "${COMP_WORDS[$((coffset+1))]}" in --section) return 0 ;; help) choices=$'sections\nlist\ndetails\nextract' ;; sections|list|details|extract) COMPREPLY=($(compgen -f -- "${COMP_WORDS[${COMP_CWORD}]}")) return 0 ;; esac ;; 3) case "${COMP_WORDS[$((coffset+1))]}" in list|details|extract) choices="$(gresource list "${COMP_WORDS[$((coffset+2))]}" 2> /dev/null | sed -e 's.$. .')" ;; esac ;; esac local IFS=$'\n' COMPREPLY=($(compgen -W "${choices}" -- "${COMP_WORDS[${COMP_CWORD}]}")) } #################################################################################################### complete -o nospace -F __gresource gresource