diff options
Diffstat (limited to 'completions/jarsigner')
-rw-r--r-- | completions/jarsigner | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/completions/jarsigner b/completions/jarsigner new file mode 100644 index 0000000..1f26c9c --- /dev/null +++ b/completions/jarsigner @@ -0,0 +1,57 @@ +# 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 + ;; + -storepass | -keypass | -sigfile | -digestalg | -sigalg | -tsacert | -tsapolicyid | \ + -tsadigestalg | -altsigner | -altsignerpath | -providerName | -providerClass | \ + -providerArg) + return + ;; + -certchain | -tsa) + _filedir + return + ;; + -storetype) + COMPREPLY=($(compgen -W 'JKS PKCS11 PKCS12' -- "$cur")) + return + ;; + -signedjar) + _filedir '@(jar|apk)' + return + ;; + esac + + # Check if a jar was already given. + local i jar=false + for ((i = 1; i < ${#words[@]} - 1; i++)); do + if [[ ${words[i]} == *.@(jar|apk) && \ + ${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|apk)' + fi +} && + complete -F _jarsigner jarsigner + +# ex: filetype=sh |