diff options
Diffstat (limited to 'completions/jarsigner')
-rw-r--r-- | completions/jarsigner | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/completions/jarsigner b/completions/jarsigner new file mode 100644 index 00000000..02befae7 --- /dev/null +++ b/completions/jarsigner @@ -0,0 +1,56 @@ +# jarsigner(1) completion -*- shell-script -*- + +_jarsigner() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -keystore) + 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) + COMPREPLY=( $( compgen -W 'JKS PKCS11 PKCS12' -- "$cur" ) ) + return 0 + ;; + -signedjar) + _filedir jar + return 0 + ;; + -tsa) + _filedir + return 0 + ;; + esac + + # 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 ; then + if [[ "$cur" == -* ]] ; then + # Documented as "should not be used": -internalsf, -sectionsonly + COMPREPLY=( $( compgen -W '-keystore -storepass -storetype \ + -keypass -sigfile -signedjar -digestalg -sigalg -verify \ + -verbose -certs -tsa -tsacert -altsigner -altsignerpath \ + -protected -providerName -providerClass -providerArg' \ + -- "$cur" ) ) + fi + _filedir jar + fi +} && +complete -F _jarsigner jarsigner + +# ex: ts=4 sw=4 et filetype=sh |