パス上にさまざまなコマンドラインツールの存在をチェックhas 、インストールされたバージョンを報告します。
hasスクリプトをインストールするだけです( bash自体を除いて依存関係はありません)。コマンドラインから、たとえば、 hasのような引数として確認するコマンドのリストを渡します。
$ 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すべてが良好な場合、ステータスコード0で出口has 。 Exitステータスコードは、パスで見つからないコマンドの数を反映しています。
$ has node go javac
✔ node 8.2.1
✔ go 1.8.3
✘ javacそしてステータスをエコーします:
$ echo $?
1 hasシェルスクリプトで使用しhas 、非常に読みやすい方法でツールの存在を確認できます
if has node
then echo you have what it takes ?
fiプロのヒント:上記のコマンドhas 、スクリプトの移植性を確保するために、curlコマンド全体に置き換えることができます→ if curl -sL https://git.io/_has | bash -s node then ...
has 、すべてを行う単一のBashスクリプトです。スクリプトをダウンロードして、 $PATHで使用できるようにすることができます。ただし、さらに簡単にするために、これらの方法のいずれかに従ってください。
以下を実行するだけです。
brew install kdabir/tap/hasターミナルで次のコマンドを実行するだけです。ITClonesにはレポhas 、パスにインストールします。
git clone https://github.com/kdabir/has.git && cd has && sudo make install非ルートのインストールの場合:
git clone https://github.com/kdabir/has.git
cd has
make PREFIX= $HOME /.local install更新するには、 git fetch実行するか、 make update後、適切なmake installコマンドが続きます。
curl -sL https://git.io/_has > /usr/local/bin/hascurl -sL https://git.io/_has | sudo tee /usr/local/bin/has > /dev/nullこれらのコマンドは、複数回と呼ばれることも安全です(更新するにhas )
asdf plugin add has https://github.com/sylvainmetayer/asdf-has
asdf install has 1.4.0
あなたが怠けている場合、あなたはまたインターネットから直接hasことができます:
curl -sL https://git.io/_has | bash -s git node npm
✔ git 2.17.1
✔ node 11.11.0
✔ npm 6.7.0 Protip :毎回タイピングが多すぎる場合は、 .bashrc / .zshrcファイルにエイリアスをセットアップします。
alias has="curl -sL https://git.io/_has | bash -s"
そしてそれを使用します
$ has git
✔ git 2.17.1
$ type has
has is aliased to `curl -sL https://git.io/_has | bash -s' $ has foobar foobar not understood has foobarているとしましょう。
そのような場合、pass HAS_ALLOW_UNSAFE=y has foobar 。これはまだfoobarの存在をチェックし、バージョンも検出しようとします。
値は、それが機能するために正確に
yでなければなりません。
.hasrcファイルコマンドが発行さhas場所からディレクトリに.hasrcファイルを探していhas 。このファイルには、確認hasコマンドを含めることができます。行ごとに1つのコマンドをリストします。 #で始まる行はコメントとして扱われます。
以下は.hasrcファイルの例です。
# tools
git
curl
# interpreters
ruby
nodeこのファイルを含むディレクトリで実行された場合、次のhasを生成します。
$ has
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0また、渡されたCLIの引数は、 .hasrcファイルに追加されていhas 。たとえば、同じ監督では、次のコマンドが起動された場合、CLI argsから渡され、 .hasrcファイルで提供された両方のコマンドのチェックhas 。
$ has java
✔ java 11.0.1
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0プロのヒント:プロジェクトのrootに.hasrcファイルをコミットします。これは、プロジェクトの構築と実行に必要なすべてのコマンドラインツールを存在することを確認するための簡単なチェックとして機能します。
インストールhasしていないマシンでは、プロジェクトの.hasrcこのコマンドによって表彰されます。
curl -sL https://git.io/_has | bash -s
このリポジトリの.hasrcファイルをご覧ください。
has サポートされているパッケージの現在のリストはbash tests/packages_all.shで表示できます。
含めるコマンドに-v 、 --version 、 -version 、 version 、 -Vのいずれかをサポートする場合、存在をチェックしてバージョンを抽出するために呼び出される対応する関数を見つけることができます。ただし、多くのツールの場合、バージョンの抽出は機能しない可能性があり、コマンドの出力のカスタム解析を追加する必要があります。 hasスクリプトは、より多くのツールを追加するために何をする必要があるかについて開発者を導くためにコメントされています。
/tests/test_all_packages.bats 、すべてのパッケージがサポートするすべてのパッケージをテストします。これには新しく追加されたコマンドが含まれているので、新しいパッケージを追加してください
alpine.Dockerfileおよびubuntu.Dockerfileは、ツールをインストールしますpackages_alpine_skip.txtおよびpackages_ubuntu_skip.txtテストからパッケージを除外する機能を提供している場合は、現在のテストを確認してください。機能のテストケースを追加します。テストは、優れたBATSテストフレームワークを使用して実行されます。テストを追加して、 make testを実行します
PRを上げて、テストがGitHubアクションを渡すことを確認してください。