mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00

* Refactor to typescript (config part) * Refactor to typescript (convert extensions, minor fixes) * Refactor to typescript (move from `action` to `dist`) * Re-enable integrity-check for dist index.js * Fix all tests and lints * fix parsing major versions * Test patch level to be digits only * debug * debug * uncache * manual compile * debug * debug * Debug * Build lib - doh * remove diff check * Make kubernetes workflow manual * Properly generate 3 digit for simple major tags * Remove ts-ignore * re-enable cache
43 lines
1.3 KiB
C#
43 lines
1.3 KiB
C#
using System.Diagnostics;
|
|
using System.Text;
|
|
|
|
public static class ProcessExtensions
|
|
{
|
|
// Execute an application or binary with given arguments
|
|
//
|
|
// See: https://stackoverflow.com/questions/4291912/process-start-how-to-get-the-output
|
|
public static int Run(this Process process, string application,
|
|
string arguments, string workingDirectory, out string output,
|
|
out string errors)
|
|
{
|
|
// Configure how to run the application
|
|
process.StartInfo = new ProcessStartInfo {
|
|
CreateNoWindow = true,
|
|
UseShellExecute = false,
|
|
RedirectStandardError = true,
|
|
RedirectStandardOutput = true,
|
|
FileName = application,
|
|
Arguments = arguments,
|
|
WorkingDirectory = workingDirectory
|
|
};
|
|
|
|
// Read the output
|
|
var outputBuilder = new StringBuilder();
|
|
var errorsBuilder = new StringBuilder();
|
|
process.OutputDataReceived += (_, args) => outputBuilder.AppendLine(args.Data);
|
|
process.ErrorDataReceived += (_, args) => errorsBuilder.AppendLine(args.Data);
|
|
|
|
// Run the application and wait for it to complete
|
|
process.Start();
|
|
process.BeginOutputReadLine();
|
|
process.BeginErrorReadLine();
|
|
process.WaitForExit();
|
|
|
|
// Format the output
|
|
output = outputBuilder.ToString().TrimEnd();
|
|
errors = errorsBuilder.ToString().TrimEnd();
|
|
|
|
return process.ExitCode;
|
|
}
|
|
}
|