diff --git a/src/app/FakeLib/ProcessHelper.fs b/src/app/FakeLib/ProcessHelper.fs index 80ddba10b25..7f15995cd35 100644 --- a/src/app/FakeLib/ProcessHelper.fs +++ b/src/app/FakeLib/ProcessHelper.fs @@ -57,6 +57,14 @@ type ProcessResult = Messages = messages Errors = errors } +/// If set to true the ProcessHelper will start all processes with a custom ProcessEncoding. +/// If set to false (default) only mono processes will be changed. +let mutable AlwaysSetProcessEncoding = false + +/// The ProcessHelper will start all processes with this encoding if AlwaysSetProcessEncoding is set to true. +/// If AlwaysSetProcessEncoding is set to false (default) only mono processes will be changed. +let mutable ProcessEncoding = Encoding.UTF8 + /// Runs the given process and returns the exit code. /// ## Parameters /// @@ -78,8 +86,8 @@ let ExecProcessWithLambdas configProcessStartInfoF (timeOut : TimeSpan) silent e proc.StartInfo.RedirectStandardOutput <- true proc.StartInfo.RedirectStandardError <- true if isMono then - proc.StartInfo.StandardOutputEncoding <- Encoding.UTF8 - proc.StartInfo.StandardErrorEncoding <- Encoding.UTF8 + proc.StartInfo.StandardOutputEncoding <- ProcessEncoding + proc.StartInfo.StandardErrorEncoding <- ProcessEncoding proc.ErrorDataReceived.Add(fun d -> if d.Data <> null then errorF d.Data) proc.OutputDataReceived.Add(fun d ->