Autocomplete não funciona para parâmetros de arquivo para jarsigner

2

Estou usando o Lubuntu 12.10. Suponha que eu tenha um arquivo chamado test.apk na minha pasta atual.

1.) No LXTerminal / bash se eu digitar,

adb install t<TAB>

o terminal faz o autocompletar corretamente para "test.apk"

2.) No entanto, se eu tentar,

jarsigner -verify t<TAB>

não funciona.

Por que o comportamento é assim? É possível fazê-lo funcionar no segundo cenário?

    
por a713n 27.07.2013 / 20:28

1 resposta

2

jarsigner tem um script de conclusão em conclusão do bash . Você pode estar usando bash-completion. Muitas distribuições instalam por padrão. A conclusão O script para jarsigner faz alguma filtragem de nome de arquivo. Espera um arquivo com uma extensão .jar . Aqui está um trecho do script de conclusão:

# 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
...
        COMPREPLY=( $( compgen -W '-keystore -storepass -storetype
            -keypass -sigfile -signedjar -digestalg -sigalg -verify
            ...
    _filedir jar
    ...

Até que um arquivo com a extensão .jar seja fornecido, _filedir e compgen são usados para restringir a conclusão a arquivos jar e alguns dos sinalizadores do programa.

O script de conclusão pode estar localizado em /usr/share/bash-completion/completions/jarsigner se você quiser dar uma olhada

    
por 27.07.2013 / 20:46