目前我解析 STDERR 输出 以向用户git push -q
显示任何git push
错误。这在大多数情况下都非常有效。然而,当推送到 Heroku 时,它们的 pre-receive 钩子也会将服务器状态和应用程序状态输出到 STDERR。
我基本上只是在寻找一种简单的方法来区分输出是否实际上是来自 git 与无关 Heroku 数据的错误。我尝试检查是否存在“ ---->
”前缀,但并非所有 Heroku 输出都有它。我还想过在 STDERR 字符串中检查“ fatal:
”和“ ssh:
”,但这似乎很脆弱。而且我找不到任何以 git 错误为前缀的文档***:
发送到 STDERR 的实际 Git 错误:
ssh: Could not resolve hostname heroku.com: nodename nor servname provided, or not known
fatal: The remote end hung up unexpectedly
典型的 Heroku 状态:
-----> 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
有没有人有更好的方法来完成只识别真正的 git 错误的想法?