Como verificar se 'wget' suporta um determinado recurso programaticamente?

4

Existe uma maneira de detectar programaticamente se o wget instalado atualmente suporta um determinado recurso; por exemplo, suporte IRI?

Estou perguntando porque gostaria de adicionar essas linhas ao meu .wgetrc :

# Use UTF-8 as the default system encoding
local_encoding = UTF-8

Mas isso torna o wget inutilizável se não for compatível com a configuração local_encoding .

Então, eu gostaria de configurar condicionalmente essa configuração, apenas se o wget for compatível com o recurso.

No Vim ( .vimrc files) você pode fazer isso usando has() e exists() :

if has("autocmd")
  " Define autocommands here
endif

Como posso fazer algo semelhante para o wget em .wgetrc ?

    
por Mathias Bynens 22.03.2012 / 12:33

2 respostas

2

Você não pode incluir nenhuma lógica extra em .wgetrc , portanto, usar a inicialização do shell como descrito na resposta da enzotib parece ser a única possibilidade.

Ao lado de --help , você pode obter a configuração de compilação do wget do GNU e, portanto, os recursos ativados por meio de --version :

if wget --version | grep -q "+iri"; then 
    # modify ~/.wgetrc
fi

No caso de você precisar testar se um recurso também está incluído no wget do busybox, você precisa saber que ele não suporta --version e imprime seu "--help" para stderr (não stdout como o wget do GNU) .

    
por 22.03.2012 / 16:26
1

E sobre isso em algum script de inicialização do shell?

if wget --help | grep -q "local-encoding"; then 
    # modify ~/.wgetrc
fi
    
por 22.03.2012 / 12:51

Tags