Question

Je suis à la recherche d'un moyen d'avoir attendre entrée git-commit standard. Je code cela dans PHP, que mes compétences ne sont pas bash-existant, donc je thougth faire régulièrement

<?php
$input = trim(fgets(STDIN));
fscanf(STDIN, "%d\n", $line);
?>

ferait l'affaire, et attendre jusqu'à ce que j'écris des choses pour continuer, mais il va juste avant et continue à exécuter mon script PHP de toute façon.

L'idée sous-jacente est que, après tagger un communiqué, git poussera au serveur web HEAD de test, envoyer quelques tweets, et laissez-moi écrire quelques détails au sujet de la libération dans le changelog.

Alors que je peux obtenir l'écriture dans un fichier (en utilisant exec('mate -w')), je voudrais qu'il accrocher jusqu'à ce que je fais un test rapide sur le serveur. Cela me permettrait de rollback si je remarque des erreurs (paresseux, je sais).

Merci pour toute aide!

Était-ce utile?

La solution

La plupart des crochets git soit ont quelque chose fed spécial y stdin, ou ont stdin détaché du terminal. Ils sont tous conçus pour fonctionner de manière non interactive, donc je ne crois pas qu'un crochet est adapté à ce que vous voulez faire. Vous pouvez, bien sûr, parler à la main, mais je ne /dev/tty pense pas que ce soit une très bonne idée.

Je ne crois pas que le crochet « pre-commit » est adapté à votre tâche, sûrement pas tous les commits que vous faites sera une libération de quelque sorte? Un crochet post-recevoir »sur la machine serveur web de test semble plus approprié.

Autres conseils

Je dois l'entrée d'utilisateur dans mon crochet post-fusion (écrit en PHP).

je l'ai résolu avec ce morceau de code: trim(exec('exec < /dev/tty && read input && echo $input'))

Ne demandez pas, cela fonctionne;)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top