mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-14 05:16:18 +01:00
716cf35585
This lets you poke at resources in elf files and standalone resource bundles. So far, only listing and extracting resources is supported. The support for elf files requires libelf.
59 lines
1.3 KiB
Bash
59 lines
1.3 KiB
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
|