in src/Cli/func/Kubernetes/KubectlHelper.cs [58:90]
public static async Task<(string Output, string Error, int ExitCode)> RunKubectl(string cmd, bool ignoreError = false, bool showOutput = false, string stdIn = null, TimeSpan? timeout = null)
{
var kubectl = new Executable("kubectl", cmd);
var sbError = new StringBuilder();
var sbOutput = new StringBuilder();
var exitCode = await kubectl.RunAsync(l => Output(l), e => Error(e), stdIn: stdIn, timeout: timeout);
if (exitCode != 0 && !ignoreError)
{
throw new CliException($"Error running {kubectl.Command}.\n" +
$"output: {sbOutput.ToString()}\n{sbError.ToString()}");
}
return (sbOutput.ToString().Trim(), sbError.ToString().Trim(), exitCode);
void Output(string line)
{
sbOutput.AppendLine(line);
if (showOutput && line != null && !string.IsNullOrWhiteSpace(line.Trim()))
{
ColoredConsole.WriteLine(line.Trim());
}
}
void Error(string line)
{
sbOutput.AppendLine(line);
if (showOutput && line != null && !string.IsNullOrWhiteSpace(line.Trim()))
{
ColoredConsole.Error.WriteLine(line);
}
}
}