Browse Source

add RunCmdAndGetOutput override methods

pull/3089/head
Alper Ebicoglu 7 years ago
parent
commit
e100bd51b7
  1. 43
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs

43
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs

@ -5,23 +5,43 @@ namespace Volo.Abp.Cli.Utils
{ {
public static class CmdHelper public static class CmdHelper
{ {
public static int SuccessfulExitCode = 0;
public static void Run(string file, string arguments) public static void Run(string file, string arguments)
{ {
var procStartInfo = new ProcessStartInfo(file, arguments); var procStartInfo = new ProcessStartInfo(file, arguments);
Process.Start(procStartInfo).WaitForExit(); Process.Start(procStartInfo)?.WaitForExit();
} }
public static int RunCmd(string command) public static int RunCmd(string command)
{ {
var procStartInfo = new ProcessStartInfo(GetFileName(), GetArguments(command)); var procStartInfo = new ProcessStartInfo(
var process = Process.Start(procStartInfo); GetFileName(),
process?.WaitForExit(); GetArguments(command)
return process?.ExitCode ?? 0; );
using (var process = Process.Start(procStartInfo))
{
process?.WaitForExit();
return process?.ExitCode ?? 0;
}
} }
public static string RunCmdAndGetOutput(string command) public static string RunCmdAndGetOutput(string command)
{ {
var output = ""; return RunCmdAndGetOutput(command, out int _);
}
public static string RunCmdAndGetOutput(string command, out bool isExitCodeSuccessful)
{
var output = RunCmdAndGetOutput(command, out int exitCode);
isExitCodeSuccessful = exitCode == SuccessfulExitCode;
return output;
}
public static string RunCmdAndGetOutput(string command, out int exitCode)
{
string output;
using (var process = new Process()) using (var process = new Process())
{ {
@ -33,16 +53,19 @@ namespace Volo.Abp.Cli.Utils
RedirectStandardOutput = true, RedirectStandardOutput = true,
RedirectStandardError = true RedirectStandardError = true
}; };
process.Start(); process.Start();
using (var stdOut = process.StandardOutput) using (var standardOutput = process.StandardOutput)
{ {
using (var stdErr = process.StandardError) using (var standardError = process.StandardError)
{ {
output = stdOut.ReadToEnd(); output = standardOutput.ReadToEnd();
output += stdErr.ReadToEnd(); output += standardError.ReadToEnd();
} }
} }
exitCode = process.ExitCode;
} }
return output.Trim(); return output.Trim();

Loading…
Cancel
Save