@@ -11,6 +11,13 @@ let NapperBinaryName = "napper"
1111
1212// --- CLI runner: uses the installed binary, never recompiles ---
1313
14+ let private logLock = obj ()
15+
16+ let log ( msg : string ) =
17+ lock logLock ( fun () ->
18+ Console.Error.WriteLine( msg)
19+ Console.Error.Flush())
20+
1421let private findNapper () : string =
1522 let localBin =
1623 Path.Combine(
@@ -24,6 +31,8 @@ let private findNapper () : string =
2431
2532let runCli ( args : string ) ( cwd : string ) : int * string * string =
2633 let binary = findNapper ()
34+ let sw = Stopwatch.StartNew()
35+ log $" [runCli] START %s {args}"
2736 let psi = ProcessStartInfo()
2837 psi.FileName <- binary
2938 psi.Arguments <- args
@@ -33,9 +42,12 @@ let runCli (args: string) (cwd: string) : int * string * string =
3342 psi.UseShellExecute <- false
3443 psi.CreateNoWindow <- true
3544 use proc = Process.Start( psi)
45+ let stderrTask = proc.StandardError.ReadToEndAsync()
3646 let stdout = proc.StandardOutput.ReadToEnd()
37- let stderr = proc.StandardError.ReadToEnd ()
47+ let stderr = stderrTask.Result
3848 proc.WaitForExit()
49+ sw.Stop()
50+ log $" [runCli] DONE %s {args} exit=%d {proc.ExitCode} elapsed=%d {sw.ElapsedMilliseconds}ms"
3951 proc.ExitCode, stdout, stderr
4052
4153// --- Temp directory helpers ---
0 commit comments