has verifica a presença de várias ferramentas de linha de comando no caminho e relata sua versão instalada.
Basta instalar o has (não há dependência além do próprio bash ). Na linha de comando, passe a lista de comandos que você deseja verificar como has , por exemplo:
$ has node npm java git gradle
✔ node 8.2.1
✔ npm 5.3.0
✔ java 1.8.0
✔ git 2.14.1
✔ gradle 4.0.1 Se tudo estiver bom, has com o código de status 0 . O código de status de saída reflete o número de comandos não encontrados no seu caminho.
$ has node go javac
✔ node 8.2.1
✔ go 1.8.3
✘ javacE ecoar o status:
$ echo $?
1 has scripts has ser usado em scripts de shell para verificar a presença da ferramenta de maneira muito legível
if has node
then echo you have what it takes ?
fi Dica profissional : o has acima pode ser substituído por todo o comando Curl para garantir a portabilidade do script → if curl -sL https://git.io/_has | bash -s node then ...
has é um script único que faz tudo. Você pode baixar o script e disponibilizá -lo no seu $PATH . No entanto, para simplificar ainda mais, siga um desses métodos.
Basta executar o seguinte:
brew install kdabir/tap/has Basta executar o seguinte comando em um terminal: o TI Clones has repo e instala -o no seu caminho.
git clone https://github.com/kdabir/has.git && cd has && sudo make installPara uma instalação sem raios:
git clone https://github.com/kdabir/has.git
cd has
make PREFIX= $HOME /.local install Para atualizar, basta fazer uma git fetch ou make update seguida pelo comando make install apropriado.
curl -sL https://git.io/_has > /usr/local/bin/hascurl -sL https://git.io/_has | sudo tee /usr/local/bin/has > /dev/null Esses comandos também são chamados várias vezes (para has )
asdf plugin add has https://github.com/sylvainmetayer/asdf-has
asdf install has 1.4.0
Se você é preguiçoso, você pode has diretamente da Internet também:
curl -sL https://git.io/_has | bash -s git node npm
✔ git 2.17.1
✔ node 11.11.0
✔ npm 6.7.0 Protip : Se isso for muito digitando sempre, configure um alias no seu arquivo .bashrc / .zshrc :
alias has="curl -sL https://git.io/_has | bash -s"
E use -o
$ has git
✔ git 2.17.1
$ type has
has is aliased to `curl -sL https://git.io/_has | bash -s' Digamos que $ has foobar retorna foobar not understood , porque has não ter foobar em permissões.
Nesses casos, o pass HAS_ALLOW_UNSAFE=y has foobar . Isso ainda deve verificar a existência de foobar e tenta detectar a versão também.
O valor deve
yexatamente para que funcione.
.hasrc has o arquivo .hasrc no diretório de onde has comando é emitido. Este arquivo pode conter comandos que has . Liste um comando por linha. Linhas começando com # são tratadas como comentários.
A seguir, o exemplo do arquivo .hasrc :
# tools
git
curl
# interpreters
ruby
node Quando has executado no diretório contendo este arquivo, ele produz:
$ has
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0 Além disso, os argumentos da CLI transmitidos pelo has são aditivos ao arquivo .hasrc . Por exemplo, no mesmo diretor, se o comando a seguir for disparado, has cheques para os dois comandos passados da CLI args e fornecidos no arquivo .hasrc .
$ has java
✔ java 11.0.1
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0 Dica Pro : Commitem o arquivo .hasrc no root do seu projeto. Isso pode funcionar como uma verificação rápida para confirmar a presença de todas as ferramentas de linha de comando necessárias para criar e executar seu projeto.
Em máquinas que nem sequer has instalado, .hasrc do seu projeto é homenageado por este comando:
curl -sL https://git.io/_has | bash -s
Dê uma olhada no arquivo .hasrc para este repo.
has A lista atual de pacotes suportados pode ser visualizada com bash tests/packages_all.sh
Se o comando que você deseja incluir suportes -v , --version , -version , version , -V , poderá encontrar a função correspondente, que pode ser chamada para verificar a presença e extrair a versão. No entanto, para muitas ferramentas, a extração da versão pode não funcionar e você precisará adicionar análise personalizada da saída do comando. O script has é comentado para orientar os desenvolvedores sobre o que precisa ser feito para adicionar mais ferramentas.
/tests/test_all_packages.bats testará todos os suportes do pacote. Isso inclui comandos recém -adicionados, então adicione novos pacotes a
alpine.Dockerfile e ubuntu.Dockerfile para instalar a ferramenta oupackages_alpine_skip.txt e packages_ubuntu_skip.txt para excluir o pacote dos testes Se você estiver contribuindo com um recurso, verifique os testes atuais. Adicione casos de teste para o seu recurso. Os testes são executados usando a excelente estrutura de teste de morcegos. Adicionar testes e executar make test
Aumente o PR e verifique se os testes passam nas ações do GitHub.