has cek keberadaan berbagai alat baris perintah di jalur dan melaporkan versi yang diinstal.
Hanya instal skrip has , (tidak ada ketergantungan selain dari bash itu sendiri). Dari baris perintah, lewati daftar perintah yang ingin Anda periksa sebagai has , misalnya:
$ 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 Jika semuanya baik has keluar dengan kode status 0 . Kode status keluar mencerminkan jumlah perintah yang tidak ditemukan di jalur Anda.
$ has node go javac
✔ node 8.2.1
✔ go 1.8.3
✘ javacDan menggemakan statusnya:
$ echo $?
1 has dalam skrip has dapat digunakan dalam skrip shell untuk memeriksa keberadaan alat dengan cara yang sangat mudah dibaca
if has node
then echo you have what it takes ?
fi Kiat Pro : Perintah has In Atas dapat diganti dengan seluruh perintah curl untuk memastikan portabilitas skrip → if curl -sL https://git.io/_has | bash -s node then ...
has skrip bash tunggal yang melakukan semuanya. Anda dapat mengunduh skrip dan membuatnya tersedia di $PATH Anda. Namun, untuk membuatnya lebih sederhana, cukup ikuti salah satu metode ini.
Jalankan saja berikut ini:
brew install kdabir/tap/has Cukup jalankan perintah berikut di terminal: Klonnya has repo dan memasangnya ke jalur Anda.
git clone https://github.com/kdabir/has.git && cd has && sudo make installUntuk instalasi non-root:
git clone https://github.com/kdabir/has.git
cd has
make PREFIX= $HOME /.local install Untuk memperbarui, lakukan saja git fetch atau make update diikuti oleh perintah make install yang sesuai.
curl -sL https://git.io/_has > /usr/local/bin/hascurl -sL https://git.io/_has | sudo tee /usr/local/bin/has > /dev/null Perintah -perintah ini aman untuk dipanggil beberapa kali juga (untuk has )
asdf plugin add has https://github.com/sylvainmetayer/asdf-has
asdf install has 1.4.0
Jika Anda malas, Anda dapat has langsung dari internet juga:
curl -sL https://git.io/_has | bash -s git node npm
✔ git 2.17.1
✔ node 11.11.0
✔ npm 6.7.0 ProTip : Jika terlalu banyak mengetik setiap kali, atur alias di file .bashrc / .zshrc Anda:
alias has="curl -sL https://git.io/_has | bash -s"
Dan gunakan itu
$ has git
✔ git 2.17.1
$ type has
has is aliased to `curl -sL https://git.io/_has | bash -s' Katakanlah $ has foobar pengembalian foobar not understood , karena has tidak memiliki foobar yang masuk daftar putih.
Dalam kasus seperti itu, lulus HAS_ALLOW_UNSAFE=y has foobar . Ini masih harus memeriksa keberadaan foobar dan mencoba mendeteksi versi juga.
Nilainya harus
yuntuk bekerja.
.hasrc has file .hasrc di direktori dari mana perintah has dikeluarkan. File ini dapat berisi perintah yang has diperiksa. Sebutkan satu perintah per baris. Baris yang dimulai dengan # diperlakukan sebagai komentar.
Berikut ini adalah contoh file .hasrc :
# tools
git
curl
# interpreters
ruby
node Kapan has dijalankan di direktori yang berisi file ini, itu menghasilkan:
$ has
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0 Juga, argumen CLI yang diteruskan ke has aditif ke file .hasrc . Misalnya, dalam DIR yang sama, jika perintah berikut dipecat, has cek untuk kedua perintah yang diteruskan dari CLI args dan disediakan dalam file .hasrc .
$ has java
✔ java 11.0.1
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0 Kiat Pro : Komit .hasrc dalam root proyek Anda. Ini dapat berfungsi sebagai pemeriksaan cepat untuk mengonfirmasi kehadiran semua alat baris perintah yang diperlukan untuk membangun dan menjalankan proyek Anda.
Pada mesin yang bahkan belum has , .hasrc proyek Anda dihormati dengan perintah ini:
curl -sL https://git.io/_has | bash -s
Lihatlah file .hasrc untuk repo ini.
has Daftar paket yang didukung saat ini dapat dilihat dengan bash tests/packages_all.sh
Jika perintah yang ingin Anda sertakan mendukung salah satu dari -v , --version , -version , version , -V maka Anda dapat menemukan fungsi yang sesuai yang dapat dipanggil untuk memeriksa ada dan mengekstrak versi. Namun, untuk banyak alat Ekstraksi versi mungkin tidak berfungsi dan Anda perlu menambahkan penguraian kustom output perintah. Skrip has dikomentari untuk memandu pengembang tentang apa yang perlu dilakukan untuk menambahkan lebih banyak alat.
/tests/test_all_packages.bats akan menguji setiap paket memiliki dukungan. Ini termasuk perintah yang baru ditambahkan jadi silakan tambahkan paket baru ke
alpine.Dockerfile dan ubuntu.Dockerfile untuk menginstal alat ataupackages_alpine_skip.txt dan packages_ubuntu_skip.txt untuk mengecualikan paket dari tes Jika Anda menyumbangkan fitur, pastikan untuk memeriksa tes saat ini. Tambahkan kasus uji untuk fitur Anda. Tes dijalankan menggunakan kerangka pengujian kelelawar yang sangat baik. Tambahkan tes dan jalankan make test
Naikkan PR dan pastikan tes meneruskan tindakan GitHub.