# # Copyright 2012 Red Hat, Inc. # # This library is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # licence, or (at your option) any later version. # # This is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public # License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this library; if not, see . # # SPDX-License-Identifier: LGPL-2.1-or-later # shellcheck shell=bash # Check for bash [ -z "$BASH_VERSION" ] && return #################################################################################################### __gresource() { local choices coffset gresource_binary gresource_binary="$1" if [ "${COMP_CWORD}" -gt 2 ]; then if [ "${COMP_WORDS[1]}" = --section ]; then 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) # shellcheck disable=SC2207 COMPREPLY=($(compgen -f -- "${COMP_WORDS[${COMP_CWORD}]}")) return 0 ;; esac ;; 3) case "${COMP_WORDS[$((coffset+1))]}" in list|details|extract) choices="$("$gresource_binary" list "${COMP_WORDS[$((coffset+2))]}" 2> /dev/null | sed -e 's.$. .')" ;; esac ;; esac local IFS=$'\n' # shellcheck disable=SC2207 COMPREPLY=($(compgen -W "${choices}" -- "${COMP_WORDS[${COMP_CWORD}]}")) } #################################################################################################### complete -o nospace -F __gresource gresource