# jarsigner(1) completion -*- shell-script -*- proc _jarsigner { local cur prev words cword _init_completion || return case (prev) { -keystore { setvar COMPREPLY = ''( $( compgen -W 'NONE' -- "$cur" ) ) _filedir '@(jks|ks|p12|pfx)' return 0 } -storepass|-keypass|-sigfile|-digestalg|-sigalg|-tsacert|-altsigner|\ -altsignerpath|-providerName|-providerClass|-providerArg { return 0 } -storetype { setvar COMPREPLY = ''( $( compgen -W 'JKS PKCS11 PKCS12' -- "$cur" ) ) return 0 } -signedjar { _filedir jar return 0 } -tsa { _filedir return 0 } } # Check if a jar was already given. local 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 setvar 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