From 81ea5049afefcf75d20a1304ef7674f3bd803add Mon Sep 17 00:00:00 2001 From: tydeu Date: Wed, 1 Jun 2022 18:09:39 -0400 Subject: [PATCH] feat: caption process stdout and stderr closes leanprover/lake#54 --- Lake/Build/Actions.lean | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Lake/Build/Actions.lean b/Lake/Build/Actions.lean index c029dd3ce6..4bcd2fdaa3 100644 --- a/Lake/Build/Actions.lean +++ b/Lake/Build/Actions.lean @@ -19,11 +19,15 @@ def proc (args : IO.Process.SpawnArgs) : BuildM PUnit := do | some cwd => s!"{cmdStr} # in directory {cwd}" | none => cmdStr let out ← IO.Process.output args - unless out.stdout.isEmpty do - logInfo out.stdout - unless out.stderr.isEmpty do - logError out.stderr - if out.exitCode != 0 then + let logOutputWith (log : String → BuildM PUnit) := do + unless out.stdout.isEmpty do + log s!"stdout:\n{out.stdout}" + unless out.stderr.isEmpty do + log s!"stderr:\n{out.stderr}" + if out.exitCode = 0 then + logOutputWith logInfo + else + logOutputWith logError logError s!"external command {args.cmd} exited with status {out.exitCode}" failure