libvips/completions/vips-completion.bash
2022-11-30 19:06:07 +00:00

46 lines
1.1 KiB
Bash

#/usr/bin/env bash
# bash completions for the "vips" command
# copy to /etc/bash_completion.d to install
_vips_compgen_f()
{
COMPREPLY=($(compgen -f -- "${COMP_WORDS[-1]}"))
if [ ${#COMPREPLY[@]} = 1 ]; then
local LASTCHAR=
if [ -d "$COMPREPLY" ]; then
LASTCHAR=/
fi
COMPREPLY=$(printf %q%s "$COMPREPLY" "$LASTCHAR")
else
for ((i=0; i < ${#COMPREPLY[@]}; i++)); do
if [ -d "${COMPREPLY[$i]}" ]; then
COMPREPLY[$i]=${COMPREPLY[$i]}/
fi
done
fi
}
_vips_completions()
{
if [ ${#COMP_WORDS[@]} == "2" ]; then
COMPREPLY=($(compgen -W "$(vips -c)" "${COMP_WORDS[1]}"))
else
local args=($(vips -c ${COMP_WORDS[1]}))
local arg_type=${args[${#COMP_WORDS[@]}-3]}
if [ x$arg_type == x"" ]; then
COMPREPLY=
elif [ $arg_type == "file" ]; then
_vips_compgen_f
elif [[ $arg_type = word:* ]]; then
local options=$(echo $arg_type | sed 's/word://' | sed 's/|/ /g')
COMPREPLY=($(compgen -W "${options[@]}" "${COMP_WORDS[-1]}"))
fi
fi
}
complete -F _vips_completions vips