зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1752381 - only parse stdout in substitute-local-geckoview. r=nalexander
Root cause: in the current tree, mach commands in mozilla-central output a warning to stderr. The substitute-local-geckoview script was calling a mach command and combining the stdout and stderr streams of the process, parsing it as JSON. This warning is not JSON so the script crashed. The crashing code was copied from settings.gradle: https://searchfox.org/mozilla-central/rev/b70bc09685763c44a8e56e4e04cb741fa020701a/settings.gradle#26 The code in settings.gradle does an intuitive thing - capture stderr separately but only print it on subprocess non-zero exit value - so we also copy that solution. I'm not sure what an appropriate place to store code shared between these two files would be so I didn't try to deduplicate it. Differential Revision: https://phabricator.services.mozilla.com/D137591
This commit is contained in:
Родитель
3ead68f530
Коммит
88203f8ad7
|
@ -54,12 +54,15 @@ def loadMozconfig() {
|
|||
machEnv(topsrcdir),
|
||||
new File(ext.has('topobjdir') ? ext.get('topobjdir') : topsrcdir))
|
||||
def standardOutput = new ByteArrayOutputStream()
|
||||
proc.consumeProcessOutput(standardOutput, standardOutput)
|
||||
def standardError = new ByteArrayOutputStream()
|
||||
proc.consumeProcessOutput(standardOutput, standardError)
|
||||
proc.waitFor()
|
||||
|
||||
// Only show the output if something went wrong.
|
||||
if (proc.exitValue() != 0) {
|
||||
throw new GradleException("Process '${commandLine}' finished with non-zero exit value ${proc.exitValue()}:\n\n${standardOutput.toString()}")
|
||||
throw new GradleException("Process '${commandLine}' finished with non-zero exit value ${proc.exitValue()}:\n\n"
|
||||
+ "stdout:\n${standardOutput.toString()}\n\n"
|
||||
+ "stderr:\n${standardError.toString()}")
|
||||
}
|
||||
|
||||
def slurper = new JsonSlurper()
|
||||
|
|
Загрузка…
Ссылка в новой задаче