Como verificar se o `wget` suporta um determinado recurso programaticamente?

Como verificar se o `wget` suporta um determinado recurso programaticamente?

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

Estou perguntando porque gostaria de adicionar estas 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 suportar a local_encodingconfiguração.

Então, eu gostaria de definir condicionalmente essa configuração, somente se o wget suportar o recurso.

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

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

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

Responder1

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

Além disso --help, você pode obter a configuração de compilação do wget do GNU e, portanto, os recursos habilitados via --version:

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

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

Responder2

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

if wget --help | grep -q "local-encoding"; then 
    # modify ~/.wgetrc
fi

informação relacionada