Skip to content

Commit

Permalink
C#: Changing logging of dotnet commands to Debug except for dotnet --…
Browse files Browse the repository at this point in the history
…info and friends.
  • Loading branch information
michaelnebel committed Apr 15, 2024
1 parent 72ffcf5 commit ddfed6e
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ private DotNet(ILogger logger, string? dotNetPath, TemporaryDirectory tempWorkin

private void Info()
{
var res = dotnetCliInvoker.RunCommand("--info");
var res = dotnetCliInvoker.RunCommand("--info", silent: false);
if (!res)
{
throw new Exception($"{dotnetCliInvoker.Exec} --info failed.");
Expand Down Expand Up @@ -91,13 +91,13 @@ public bool AddPackage(string folder, string package)
return dotnetCliInvoker.RunCommand(args);
}

public IList<string> GetListedRuntimes() => GetResultList("--list-runtimes");
public IList<string> GetListedRuntimes() => GetResultList("--list-runtimes", null, false);

public IList<string> GetListedSdks() => GetResultList("--list-sdks");
public IList<string> GetListedSdks() => GetResultList("--list-sdks", null, false);

private IList<string> GetResultList(string args, string? workingDirectory = null)
private IList<string> GetResultList(string args, string? workingDirectory = null, bool silent = true)
{
if (dotnetCliInvoker.RunCommand(args, workingDirectory, out var results))
if (dotnetCliInvoker.RunCommand(args, workingDirectory, out var results, silent))
{
return results;
}
Expand Down Expand Up @@ -316,4 +316,4 @@ public static BuildScript WithDotNet(IBuildActions actions, ILogger logger, IEnu
});
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ private ProcessStartInfo MakeDotnetStartInfo(string args, string? workingDirecto
return startInfo;
}

private bool RunCommandAux(string args, string? workingDirectory, out IList<string> output)
private bool RunCommandAux(string args, string? workingDirectory, out IList<string> output, bool silent)
{
var dirLog = string.IsNullOrWhiteSpace(workingDirectory) ? "" : $" in {workingDirectory}";
logger.LogInfo($"Running {Exec} {args}{dirLog}");
var pi = MakeDotnetStartInfo(args, workingDirectory);
var threadId = Environment.CurrentManagedThreadId;
void onOut(string s) => logger.LogInfo(s, threadId);
void onOut(string s) => logger.Log(silent ? Severity.Debug : Severity.Info, s, threadId);
void onError(string s) => logger.LogError(s, threadId);
var exitCode = pi.ReadOutput(out output, onOut, onError);
if (exitCode != 0)
Expand All @@ -57,13 +57,13 @@ private bool RunCommandAux(string args, string? workingDirectory, out IList<stri
return true;
}

public bool RunCommand(string args) =>
RunCommandAux(args, null, out _);
public bool RunCommand(string args, bool silent) =>
RunCommandAux(args, null, out _, silent);

public bool RunCommand(string args, out IList<string> output) =>
RunCommandAux(args, null, out output);
public bool RunCommand(string args, out IList<string> output, bool silent) =>
RunCommandAux(args, null, out output, silent);

public bool RunCommand(string args, string? workingDirectory, out IList<string> output) =>
RunCommandAux(args, workingDirectory, out output);
public bool RunCommand(string args, string? workingDirectory, out IList<string> output, bool silent) =>
RunCommandAux(args, workingDirectory, out output, silent);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,22 @@ internal interface IDotNetCliInvoker

/// <summary>
/// Execute `dotnet <args>` and return true if the command succeeded, otherwise false.
/// If `silent` is true the output of the command is logged as `debug` otherwise as `info`.
/// </summary>
bool RunCommand(string args);
bool RunCommand(string args, bool silent = true);

/// <summary>
/// Execute `dotnet <args>` and return true if the command succeeded, otherwise false.
/// The output of the command is returned in `output`.
/// If `silent` is true the output of the command is logged as `debug` otherwise as `info`.
/// </summary>
bool RunCommand(string args, out IList<string> output);
bool RunCommand(string args, out IList<string> output, bool silent = true);

/// <summary>
/// Execute `dotnet <args>` in `<workingDirectory>` and return true if the command succeeded, otherwise false.
/// The output of the command is returned in `output`.
/// If `silent` is true the output of the command is logged as `debug` otherwise as `info`.
/// </summary>
bool RunCommand(string args, string? workingDirectory, out IList<string> output);
bool RunCommand(string args, string? workingDirectory, out IList<string> output, bool silent = true);
}
}
8 changes: 4 additions & 4 deletions csharp/extractor/Semmle.Extraction.Tests/DotNet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,23 @@ public DotNetCliInvokerStub(IList<string> output)

public string Exec => "dotnet";

public bool RunCommand(string args)
public bool RunCommand(string args, bool silent)
{
lastArgs = args;
return Success;
}

public bool RunCommand(string args, out IList<string> output)
public bool RunCommand(string args, out IList<string> output, bool silent)
{
lastArgs = args;
output = this.output;
return Success;
}

public bool RunCommand(string args, string? workingDirectory, out IList<string> output)
public bool RunCommand(string args, string? workingDirectory, out IList<string> output, bool silent)
{
WorkingDirectory = workingDirectory ?? "";
return RunCommand(args, out output);
return RunCommand(args, out output, silent);
}

public string GetLastArgs() => lastArgs;
Expand Down

0 comments on commit ddfed6e

Please sign in to comment.