1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
# jarsigner(1) completion -*- shell-script -*-
_comp_cmd_jarsigner()
{
local cur prev words cword comp_args
_comp_initialize -- "$@" || return
case $prev in
-keystore)
_comp_compgen -- -W 'NONE'
_comp_compgen -a filedir '@(jks|ks|p12|pfx)'
return
;;
-storepass | -keypass | -sigfile | -digestalg | -sigalg | -tsacert | -tsapolicyid | \
-tsadigestalg | -altsigner | -altsignerpath | -providerName | -providerClass | \
-providerArg)
return
;;
-certchain | -tsa)
_comp_compgen_filedir
return
;;
-storetype)
_comp_compgen -- -W 'JKS PKCS11 PKCS12'
return
;;
-signedjar)
_comp_compgen_filedir '@(jar|apk)'
return
;;
esac
# Check if a jar was already given.
local i jar=""
for ((i = 1; i < cword; i++)); do
if [[ ${words[i]} == *.@(jar|apk) &&
${words[i - 1]} != -signedjar ]]; then
jar=set
break
fi
done
if [[ ! $jar ]]; then
if [[ $cur == -* ]]; then
# Documented as "should not be used": -internalsf, -sectionsonly
_comp_compgen -- -W '-keystore -storepass -storetype -keypass
-sigfile -signedjar -digestalg -sigalg -verify -verbose -certs
-tsa -tsacert -altsigner -altsignerpath -protected
-providerName -providerClass -providerArg'
fi
_comp_compgen -a filedir '@(jar|apk)'
fi
} &&
complete -F _comp_cmd_jarsigner jarsigner
# ex: filetype=sh
|