# jarsigner(1) completion -*- shell-script -*- proc _jarsigner { var cur = '', prev = '', words = '', cword = '' _init_completion || return match $prev { with -keystore setglobal COMPREPLY = '( '$( compgen -W 'NONE' -- "$cur" ) ) _filedir '@(jks|ks|p12|pfx)' return 0 with -storepass|-keypass|-sigfile|-digestalg|-sigalg|-tsacert|-altsigner|\ -altsignerpath|-providerName|-providerClass|-providerArg return 0 with -storetype setglobal COMPREPLY = '( '$( compgen -W 'JKS PKCS11 PKCS12' -- "$cur" ) ) return 0 with -signedjar _filedir jar return 0 with -tsa _filedir return 0 } # Check if a jar was already given. var i = '', jar = 'false' for (( i=0; i < ${#words[@]}-1; i++ )) ; do if [[ "${words[i]}" == *.jar && \ "${words[i-1]}" != -signedjar ]] ; then jar=true break fi done if ! $jar { if [[ "$cur" == -* ]] { # Documented as "should not be used": -internalsf, -sectionsonly setglobal COMPREPLY = '( '$( compgen -W '-keystore -storepass -storetype -keypass -sigfile -signedjar -digestalg -sigalg -verify -verbose -certs -tsa -tsacert -altsigner -altsignerpath -protected -providerName -providerClass -providerArg' \ -- "$cur" ) ) } _filedir jar } } && complete -F _jarsigner jarsigner # ex: ts=4 sw=4 et filetype=sh