القراءة من STDIN على بوابة ما قبل ارتكاب هوك (مع PHP)
سؤال
وأنا أبحث عن وسيلة لديك git-commit
انتظر الإدخال القياسي. أنا الترميز هذا في PHP
، كما مهاراتي bash
هي غير متوفرة، لذلك أنا thougth القيام العادية
<?php
$input = trim(fgets(STDIN));
fscanf(STDIN, "%d\n", $line);
?>
وسوف تفعل خدعة، وانتظر حتى وأنا أكتب الاشياء للمتابعة، لكنه يذهب فقط إلى الأمام وتواصل تنفيذ بلدي النصي PHP على أي حال.
والفكرة وراء ذلك هو أنه بعد أن علامة الإفراج، وبوابة دفع HEAD
إلى اختبار خادم، وإرسال اثنين من تويت، واسمحوا لي أن أكتب في بعض التفاصيل بشأن الافراج في التغيير.
وبينما أنا يمكن أن تحقق الكتابة إلى ملف (باستخدام exec('mate -w')
)، أود أن تشبث حتى أفعل اختبار سريع على الخادم. هذا من شأنه أن تمكنني من التراجع إذا لاحظت أي أخطاء (كسول، وأنا أعلم).
وشكرا على اي مساعدة!
المحلول
ومعظم السنانير بوابة إما أن يكون شيئا تغذية خاص هناك ستدين، أو قد فصل ستدين من المحطة. وهي مصممة فقط ليتم تشغيلها غير تفاعلي، لذلك لا أعتقد أن ربط مناسب لما تريد القيام به. يمكنك، بالطبع، الحديث يدويا ل/dev/tty
لكن لا أعتقد أنها فكرة جيدة للغاية.
وأنا أيضا لا نعتقد أن هوك "قبل ارتكاب" هو مناسب لمهمتك، وبالتأكيد ليس كل يرتكبون التي تجريها سوف يكون الافراج عن نوع؟ A هوك "بعد تلقي 'على الجهاز اختبار خادم يبدو أكثر ملاءمة.
نصائح أخرى
وأحتاج إدخال المستخدم في بلدي هوك بعد دمج (كتب في PHP).
وأنا حلها مع هذه القطعة من التعليمات البرمجية: trim(exec('exec < /dev/tty && read input && echo $input'))
لا تسأل، وأنها تعمل.)