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 หากทุกอย่างดี has ออกจากรหัสสถานะ 0 รหัสสถานะออกสะท้อนจำนวนคำสั่ง ที่ไม่พบ บนเส้นทางของคุณ
$ 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 เคล็ดลับ PRO : คำสั่ง has ในด้านบนสามารถถูกแทนที่ด้วยคำสั่ง CURL ทั้งหมดเพื่อให้แน่ใจว่าพกพาของสคริปต์→ if curl -sL https://git.io/_has | bash -s node then ...
has สคริปต์ทุบตีเดียวที่ทำทุกอย่าง คุณสามารถดาวน์โหลดสคริปต์และทำให้พร้อมใช้งานบน $PATH ของคุณ อย่างไรก็ตามเพื่อให้ง่ายขึ้นเพียงทำตามวิธีการเหล่านี้อย่าง ใดอย่างหนึ่ง
เพียงแค่เรียกใช้สิ่งต่อไปนี้:
brew install kdabir/tap/has เพียงดำเนินการคำสั่งต่อไปนี้ในเทอร์มินัล: โคลน has repo และติดตั้งลงในเส้นทางของคุณ
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 Returns foobar not understood เพราะ has ไม่มี whitelisted 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 ที่ส่งผ่านไป has การเติมเต็มไปยังไฟล์. .hasrc ตัวอย่างเช่นใน DIR เดียวกันหากมีการยิงคำสั่งต่อไปนี้ has ตรวจสอบคำสั่งทั้งสองที่ส่งผ่านจาก CLI ARGS และให้ไว้ในไฟล์. .hasrc
$ has java
✔ java 11.0.1
✔ git 2.19.1
✔ curl 7.54.0
✔ ruby 2.3.1
✔ node 10.7.0 เคล็ดลับ PRO : ส่งไฟล์. .hasrc ในรูทของโครงการของคุณ สิ่งนี้สามารถทำงานเพื่อตรวจสอบอย่างรวดเร็วเพื่อยืนยันสถานะเครื่องมือบรรทัดคำสั่งทั้งหมดที่จำเป็นในการสร้างและเรียกใช้โครงการของคุณ
ในเครื่องจักรที่ยังไม่ได้ has ตั้งโครงการ. .hasrc ของคุณได้รับเกียรติจากคำสั่งนี้:
curl -sL https://git.io/_has | bash -s
ดูไฟล์. hasrc สำหรับ repo นี้
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 เพื่อยกเว้นแพ็คเกจจากการทดสอบ หากคุณมีส่วนร่วมในคุณสมบัติโปรดตรวจสอบการทดสอบปัจจุบัน เพิ่มกรณีทดสอบสำหรับคุณสมบัติของคุณ การทดสอบจะดำเนินการโดยใช้กรอบการทดสอบค้างคาวที่ยอดเยี่ยม เพิ่มการทดสอบและดำเนินการ make test
เพิ่มการประชาสัมพันธ์และ ตรวจสอบให้แน่ใจว่าการทดสอบส่ง ผ่านการกระทำของ GitHub