# 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