a8d7141d2b
A future version of CMake may not print the "cmake version" line at the beginning of the --help-*-list output. Filter out the line with 'grep' instead of 'tail' to tolerate output from versions of CMake with and without the version line. Match "cmake version", "cpack version", and "ctest version" in each corresponding completion script.
62 lines
1.8 KiB
Bash
62 lines
1.8 KiB
Bash
# bash completion for cpack(1) -*- shell-script -*-
|
|
|
|
_cpack()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion -n = || return
|
|
|
|
case "$prev" in
|
|
-G)
|
|
COMPREPLY=( $( compgen -W '$( cpack --help 2>/dev/null |
|
|
sed -e "1,/^Generators/d" -e "s|^ *\([^ ]*\) .*$|\1|" \
|
|
2>/dev/null )' -- "$cur" ) )
|
|
return
|
|
;;
|
|
-C)
|
|
COMPREPLY=( $( compgen -W 'Debug Release RelWithDebInfo
|
|
MinSizeRel' -- "$cur" ) )
|
|
return
|
|
;;
|
|
-D)
|
|
[[ $cur == *=* ]] && return # no completion for values
|
|
COMPREPLY=( $( compgen -W '$( cpack --help-variable-list \
|
|
2>/dev/null | grep -v "^cpack version " )' -S = -- "$cur" ) )
|
|
compopt -o nospace
|
|
return
|
|
;;
|
|
-P|-R|--vendor)
|
|
# argument required but no completions available
|
|
return
|
|
;;
|
|
-B)
|
|
_filedir -d
|
|
return
|
|
;;
|
|
--config)
|
|
_filedir
|
|
return
|
|
;;
|
|
--help-command)
|
|
COMPREPLY=( $( compgen -W '$( cpack --help-command-list 2>/dev/null|
|
|
grep -v "^cpack version " )' -- "$cur" ) )
|
|
return
|
|
;;
|
|
--help-variable)
|
|
COMPREPLY=( $( compgen -W '$( cpack --help-variable-list \
|
|
2>/dev/null | grep -v "^cpack version " )' -- "$cur" ) )
|
|
return
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) )
|
|
[[ $COMPREPLY == *= ]] && compopt -o nospace
|
|
[[ $COMPREPLY ]] && return
|
|
fi
|
|
|
|
_filedir
|
|
} &&
|
|
complete -F _cpack cpack
|
|
|
|
# ex: ts=4 sw=4 et filetype=sh
|