2010-11-26 10 views
0

Zur Zeit parse ich STDERR-Ausgabe von git push -q, um dem Benutzer alle git push Fehler anzuzeigen. Das funktioniert wunderbar die meiste Zeit. Wenn sie jedoch zu Heroku wechseln, gibt ihr Pre-Receive-Hook den Status des Server- und Anwendungsstatus an STDERR aus.Entschlüsselung von Heroku 'git push' Ausgabe von regluar 'git push' Ausgabefehler

Ich bin im Grunde nur auf der Suche nach einem einfachen Weg, um zu unterscheiden, ob die Ausgabe tatsächlich Fehler von git vs externen Heroku-Daten ist. Ich habe versucht, das Vorhandensein eines "---->" Präfix zu überprüfen, aber nicht alle Heroku-Ausgabe hat es. Ich dachte auch daran, nach "fatal:" und "ssh:" in der STDERR-Kette zu suchen, aber das scheint sehr spröde zu sein. Und ich konnte keine Dokumentation finden, dass jeder git Fehler mit ***:

Actual Git Fehler an STDERR gesendet vorangestellt ist:

ssh: Could not resolve hostname heroku.com: nodename nor servname provided, or not known 
fatal: The remote end hung up unexpectedly 

Typische Heroku Status:

-----> Heroku receiving push 
-----> Rack app detected 
-----> Gemfile detected, running Bundler version 1.0.3 
     All dependencies are satisfied 
     Compiled slug size is 8.4MB 
-----> Launching.... done 
     http://XXXXXXX.com deployed to Heroku 

Hat jemand irgendwelche Ideen einen besseren Weg zu erreichen, nur die echten Git-Fehler zu identifizieren?

+0

Ich weiß, ich kann auf den Exit-Status zu sehen, ob der Push erfolgreich war, aber ich möchte sinnvolle Fehlermeldungen präsentieren. – SpiralLab

Antwort

0

Laut Heroku: ab sofort gibt es keine kugelsichere Möglichkeit, die Heroku-Ausgabe von der Git-Ausgabe zu unterscheiden. Aber sie arbeiten daran, ihr Ausgabeformat zu standardisieren.

Es ist also hauptsächlich eine Frage der Suche nach den häufigsten Elementen.