2
1
mirror of https://github.com/kdabir/has.git synced 2024-11-10 21:26:50 +01:00
Go to file
Kunal Dabir 2a75f7e763 Add more comments for anyone to follow along what the script does
Also extracted function for commands what expect version as arg
2017-10-14 12:29:07 +05:30
.editorconfig release 1.0 2017-08-29 12:01:11 +05:30
.gitattributes adding usual suspects for project root 2015-02-12 19:28:24 +05:30
.gitignore adding usual suspects for project root 2015-02-12 19:28:24 +05:30
.hastest.bats udpate test names and tool names 2017-08-29 09:23:21 +05:30
.travis.yml release 1.0 2017-08-29 12:01:11 +05:30
has Add more comments for anyone to follow along what the script does 2017-10-14 12:29:07 +05:30
LICENSE update license 2017-08-28 21:11:51 +05:30
Makefile release 1.0 2017-08-29 12:01:11 +05:30
README.md update readme for non-whitelisted commands 2017-09-12 09:44:51 +05:30

has

has checks presence of various command line tools and their versions on the path

How ?

Download the has file. There is no dependency apart from bash itself

$ 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

If everything is good has exits with status code 0. The status code reflects number of commands not found on your path.

$ has node go javac
✔ node 8.2.1
✔ go 1.8.3
✘ javac

And echo the status:

$ echo $?
1

Installing

Just download the has script in your path.

git clone https://github.com/kdabir/has.git && cd has && make install

If you are lazy, you can run has directly off the internet as well:

curl -sL https://git.io/_has | bash -s git node npm
✔ git 2.14.1
✔ node 8.2.1
✔ npm 5.3.0

And if that's too much of typing every time, setup an alias

alias has="curl -sL https://git.io/_has | bash -s"

And use it

$ has git
✔ git 2.14.1

command not understood by has?

Let's say $ has foobar returns foobar not understood, because has may not have whitelisted foobar.

In such cases, pass HAS_ALLOW_UNSAFE=y has foobar. This is should still check for existance of foobar and tries to detect version as well.

Build Status

Demo

asciicast