has das Vorhandensein verschiedener Befehlszeilen -Tools auf dem Pfad und meldet ihre installierte Version.
Installieren Sie einfach das has (es gibt keine Abhängigkeit, abgesehen davon, dass sie sich selbst bash ). Übergeben Sie in der Befehlszeile die Liste der Befehle, die Sie als has überprüfen möchten, zum Beispiel:
$ 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 Wenn alles gut ist, has sich mit Statuscode 0 . Der Code des Exit -Status spiegelt die Anzahl der auf Ihrem Pfad nicht gefundenen Befehle wider.
$ has node go javac
✔ node 8.2.1
✔ go 1.8.3
✘ javacUnd den Status wiederholen:
$ echo $?
1 has in Skripten has in Shell -Skripten verwendet werden, um das Vorhandensein von Tool auf sehr lesbare Weise zu überprüfen
if has node
then echo you have what it takes ?
fi Pro -Tipp : Der has im obigen Einsatz kann durch den gesamten Befehl curl ersetzt werden, um die Portabilität von Skript → if curl -sL https://git.io/_has | bash -s node then ...
has ist ein einzelnes Bash -Skript, das alles macht. Sie können das Skript herunterladen und es auf Ihrem $PATH zur Verfügung stellen. Um es jedoch noch einfacher zu machen, folgen Sie einfach einer dieser Methoden.
Führen Sie einfach Folgendes aus:
brew install kdabir/tap/has Führen Sie einfach den folgenden Befehl in einem Terminal aus: IT -Klone has Repo und installiert ihn in Ihren Weg.
git clone https://github.com/kdabir/has.git && cd has && sudo make installFür eine Nicht-Root-Installation:
git clone https://github.com/kdabir/has.git
cd has
make PREFIX= $HOME /.local install Um aktualisiert zu werden, machen Sie einfach einen git fetch oder make update gefolgt von dem entsprechenden Befehl " 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 Diese Befehle können auch mehrmals aufgerufen werden (um zu has )
asdf plugin add has https://github.com/sylvainmetayer/asdf-has
asdf install has 1.4.0
Wenn Sie faul sind, können Sie auch direkt aus dem Internet ausgeführt 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 : Wenn das jedes Mal zu viel tippt, richten Sie einen Alias in Ihre .bashrc / .zshrc -Datei ein:
alias has="curl -sL https://git.io/_has | bash -s"
Und benutze es
$ has git
✔ git 2.17.1
$ type has
has is aliased to `curl -sL https://git.io/_has | bash -s' Nehmen wir an, $ has foobar zurückgekehrt, foobar not understood , da has möglicherweise nicht whitelistete foobar hat.
In solchen Fällen HAS_ALLOW_UNSAFE=y has foobar . Dies sollte weiterhin nach Existenz von foobar überprüfen und versucht, die Version ebenfalls zu erkennen.
Der Wert muss genau
y, damit er funktioniert.
.hasrc -Datei has nach .hasrc -Datei im Verzeichnis, von dem has Befehl ausgestellt wurde. Diese Datei kann Befehle enthalten, auf die has . Listen Sie einen Befehl pro Zeile auf. Zeilen mit # werden als Kommentare behandelt.
Im Folgenden finden Sie ein Beispiel für .hasrc -Datei:
# tools
git
curl
# interpreters
ruby
node Wann has im Verzeichnis mit dieser Datei ausgeführt, erzeugt sie:
$ has
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0 Außerdem sind CLI -Argumente, die an has übergeben wurden, zu .hasrc -Datei. Wenn beispielsweise der folgende Befehl in derselben Dire abgefeuert wird, überprüft has überprüft, ob beide Befehle von CLI Args übergeben und in .hasrc -Datei bereitgestellt werden.
$ has java
✔ java 11.0.1
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0 Pro -Tipp : Commit .hasrc -Datei in Root Ihres Projekts. Dies kann als schnelle Überprüfung für die Bestätigung aller Befehlszeilen -Tools funktionieren, die zum Erstellen und Ausführen Ihres Projekts erforderlich sind.
Bei Maschinen, die noch nicht einmal installiert has , wird das .hasrc Ihres Projekts durch diesen Befehl geehrt:
curl -sL https://git.io/_has | bash -s
Schauen Sie sich die Datei .Hasrc für dieses Repo an.
has Die aktuelle Liste der unterstützten Pakete kann mit bash tests/packages_all.sh angezeigt werden
Wenn der Befehl, den Sie einschließen möchten, unterstützt eine von -v , --version , -version , version , -V , können Sie die entsprechende Funktion finden, die aufgerufen werden kann, um die Präsenz zu überprüfen und die Version zu extrahieren. Für viele Tools -Versionen funktioniert die Extraktion jedoch möglicherweise nicht und Sie müssen eine benutzerdefinierte Analyse der Ausgabe des Befehls hinzufügen. Das has wird kommentiert, um Entwickler darüber zu leiten, was getan werden muss, um weitere Tools hinzuzufügen.
/tests/test_all_packages.bats testet jedes Paket unterstützt. Dies beinhaltet neu hinzugefügte Befehle. Fügen Sie also bitte neue Pakete hinzu
alpine.Dockerfile und ubuntu.Dockerfile um das Tool zu installieren oderpackages_alpine_skip.txt und packages_ubuntu_skip.txt um das Paket aus den Tests auszuschließen Wenn Sie eine Funktion beitragen, stellen Sie sicher, dass Sie die aktuellen Tests überprüfen. Fügen Sie Testfälle für Ihre Funktion hinzu. Tests werden mit dem exzellenten Fledermaus -Test -Framework ausgeführt. Fügen Sie Tests hinzu und führen Sie Test durch make test
Erhöhen Sie die PR und stellen Sie sicher, dass die Tests Github -Aktionen weitergeben .