Ville Skyttä c875723bef Include trailing equals sign in options that take arguments that way.
This way it's clearer to users that an argument is expected.  It's
likely that this commit does not catch all such cases, but it should
do it for most of the affected commands I have installed.
2011-05-02 11:45:55 +03:00

50 lines
1.2 KiB
Bash

# bash completion for gzip
have gzip || have pigz || return
_gzip()
{
local cur prev words cword
_init_completion || return
case $prev in
-b|--blocksize|-p|--processes|-S|--suffix|-h|--help|-V|--version)
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) {-1..-9}' \
-- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
return 0
fi
local IFS=$'\n' xspec="*.@(gz|t[ag]z)"
if [[ "$prev" == --* ]]; then
[[ "$prev" == --decompress || \
"$prev" == --list || \
"$prev" == --test ]] && xspec="!"$xspec
[[ "$prev" == --force ]] && xspec=
elif [[ "$prev" == -* ]]; then
[[ "$prev" == -*[dlt]* ]] && xspec="!"$xspec
[[ "$prev" == -*f* ]] && xspec=
fi
_expand || return 0
compopt -o filenames
COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \
$( compgen -d -- "$cur" ) )
} &&
complete -F _gzip gzip pigz
# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh