경로에 다양한 명령 줄 도구가 있는지 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 . 종료 상태 코드는 경로에서 찾을 수없는 명령 수를 반영합니다.
$ 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 은 스크립트의 이식성을 보장하기 위해 전체 컬 명령으로 대체 할 수 있습니다 if curl -sL https://git.io/_has | bash -s node then ...
has 모든 것을 수행하는 단일 bash 스크립트입니다. 스크립트를 다운로드하여 $PATH 에서 사용할 수있게 할 수 있습니다. 그러나 더 간단하게 만들기 위해 이러한 방법 중 하나를 따르십시오.
다음을 실행합니다.
brew install kdabir/tap/has 터미널에서 다음 명령을 실행하기 만하면됩니다. 클론은 리포지료를 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 CRIPIP : 매번 입력 한 경우 .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 has foobar not understood foobar 했다고 가정 해 봅시다.
이러한 경우 Pass HAS_ALLOW_UNSAFE=y has foobar . 이것은 여전히 foobar 의 존재를 확인하고 버전을 감지하려고합니다.
작동하려면 값이 정확히
y여야합니다.
.hasrc 파일 has 명령이 발행되는 디렉토리에서 .hasrc 파일을 찾았 has . 이 파일에는 has 명령이 포함될 수 있습니다. 줄 당 하나의 명령을 나열하십시오. # 로 시작하는 줄은 주석으로 취급됩니다.
다음은 .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 . 예를 들어, 동일한 DIR에서 다음 명령이 해고되면 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 전문가 팁 : 프로젝트의 루트에있는 .hasrc 파일을 커밋하십시오. 이는 프로젝트를 구축하고 실행하는 데 필요한 모든 명령 줄 도구를 확인하기위한 빠른 확인으로 작동 할 수 있습니다.
has 되지 않은 기계에서는 프로젝트의 .hasrc 가이 명령에 의해 영광입니다.
curl -sL https://git.io/_has | bash -s
이 repo의 .hasrc 파일을 살펴보십시오.
has 추가합니다 지원되는 패키지의 현재 목록은 bash tests/packages_all.sh 로 볼 수 있습니다.
포함하려는 명령이 -v , --version , -version , version , -V 를 지원하는 경우 Presence를 확인하고 버전을 추출하기 위해 호출 할 수있는 해당 기능을 찾을 수 있습니다. 그러나 많은 도구 버전 추출은 작동하지 않을 수 있으며 명령의 출력에 대한 사용자 정의 구문 분석을 추가해야합니다. has 스크립트는 더 많은 도구를 추가하기 위해 수행해야 할 작업을 개발자에게 안내하기 위해 댓글을 달았습니다.
/tests/test_all_packages.bats 모든 패키지가 지원되는 모든 패키지를 테스트합니다. 여기에는 새로 추가 된 명령이 포함되므로 새 패키지를 추가하십시오.
alpine.Dockerfile 및 ubuntu.Dockerfile 도구를 설치하려면packages_alpine_skip.txt 및 packages_ubuntu_skip.txt 테스트에서 패키지 제외 기능을 제공하는 경우 현재 테스트를 확인하십시오. 기능에 대한 테스트 케이스를 추가하십시오. 우수한 BATS 테스트 프레임 워크를 사용하여 테스트가 실행됩니다. 테스트를 추가하고 make test 실행하십시오
PR을 높이고 테스트가 GitHub 작업을 통과하십시오 .