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 استخدامه في البرامج النصية shell للتحقق من وجود أداة بطريقة قابلة للقراءة للغاية
if has node
then echo you have what it takes ?
fi نصيحة للمحترفين : يمكن استبدال has في الأمر أعلاه بأمر CURL بالكامل لضمان قابلية نقل البرنامج النصي → if curl -sL https://git.io/_has | bash -s node then ...
has نص باش واحد يفعل كل شيء. يمكنك تنزيل البرنامج النصي وجعله متاحًا على $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 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 foobar not understood ، لأنه قد لا يكون has القائمة البيضاء foobar .
في مثل هذه الحالات ، تمرير 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 نصيحة للمحترفين : ارتكاب ملف .hasrc في جذر مشروعك. يمكن أن يعمل هذا بمثابة فحص سريع لتأكيد الوجود على جميع أدوات سطر الأوامر المطلوبة لإنشاء مشروعك وتشغيله.
على الأجهزة التي لم يتم has حتى ، يتم تكريم مشروعك .hasrc من خلال هذا الأمر:
curl -sL https://git.io/_has | bash -s
ألقِ نظرة على ملف .hasrc لهذا الريبو.
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.