mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
C#: Remove progress monitor from dependency fetcher, use logger directly
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Microsoft.Build.Framework;
|
||||
using Semmle.Util;
|
||||
|
||||
namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
@@ -14,7 +15,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
internal class NugetPackages
|
||||
{
|
||||
private readonly string? nugetExe;
|
||||
private readonly ProgressMonitor progressMonitor;
|
||||
private readonly Util.Logging.ILogger logger;
|
||||
|
||||
/// <summary>
|
||||
/// The list of package files.
|
||||
@@ -31,10 +32,10 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
/// <summary>
|
||||
/// Create the package manager for a specified source tree.
|
||||
/// </summary>
|
||||
public NugetPackages(string sourceDir, TemporaryDirectory packageDirectory, ProgressMonitor progressMonitor)
|
||||
public NugetPackages(string sourceDir, TemporaryDirectory packageDirectory, Util.Logging.ILogger logger)
|
||||
{
|
||||
this.packageDirectory = packageDirectory;
|
||||
this.progressMonitor = progressMonitor;
|
||||
this.logger = logger;
|
||||
|
||||
packageFiles = new DirectoryInfo(sourceDir)
|
||||
.EnumerateFiles("packages.config", SearchOption.AllDirectories)
|
||||
@@ -42,12 +43,12 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
|
||||
if (packageFiles.Length > 0)
|
||||
{
|
||||
progressMonitor.LogInfo($"Found {packageFiles.Length} packages.config files, trying to use nuget.exe for package restore");
|
||||
logger.LogInfo($"Found {packageFiles.Length} packages.config files, trying to use nuget.exe for package restore");
|
||||
nugetExe = ResolveNugetExe(sourceDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
progressMonitor.LogInfo("Found no packages.config file");
|
||||
logger.LogInfo("Found no packages.config file");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +67,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
var nuget = Path.Combine(directory, "nuget", "nuget.exe");
|
||||
if (File.Exists(nuget))
|
||||
{
|
||||
progressMonitor.LogInfo($"Found nuget.exe at {nuget}");
|
||||
logger.LogInfo($"Found nuget.exe at {nuget}");
|
||||
return nuget;
|
||||
}
|
||||
|
||||
@@ -81,16 +82,16 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
// Nuget.exe already exists in the .nuget directory.
|
||||
if (File.Exists(nuget))
|
||||
{
|
||||
progressMonitor.LogInfo($"Found nuget.exe at {nuget}");
|
||||
logger.LogInfo($"Found nuget.exe at {nuget}");
|
||||
return nuget;
|
||||
}
|
||||
|
||||
Directory.CreateDirectory(directory);
|
||||
progressMonitor.LogInfo("Attempting to download nuget.exe");
|
||||
logger.LogInfo("Attempting to download nuget.exe");
|
||||
try
|
||||
{
|
||||
FileUtils.DownloadFile(FileUtils.NugetExeUrl, nuget);
|
||||
progressMonitor.LogInfo($"Downloaded nuget.exe to {nuget}");
|
||||
logger.LogInfo($"Downloaded nuget.exe to {nuget}");
|
||||
return nuget;
|
||||
}
|
||||
catch
|
||||
@@ -106,7 +107,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
/// <param name="package">The package file.</param>
|
||||
private void RestoreNugetPackage(string package)
|
||||
{
|
||||
progressMonitor.LogInfo($"Restoring file {package}...");
|
||||
logger.LogInfo($"Restoring file {package}...");
|
||||
|
||||
/* Use nuget.exe to install a package.
|
||||
* Note that there is a clutch of NuGet assemblies which could be used to
|
||||
@@ -134,16 +135,16 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
|
||||
};
|
||||
|
||||
var threadId = Environment.CurrentManagedThreadId;
|
||||
void onOut(string s) => progressMonitor.LogInfo(s, threadId);
|
||||
void onError(string s) => progressMonitor.LogError(s, threadId);
|
||||
void onOut(string s) => logger.LogInfo(s, threadId);
|
||||
void onError(string s) => logger.LogError(s, threadId);
|
||||
var exitCode = pi.ReadOutput(out var _, onOut, onError);
|
||||
if (exitCode != 0)
|
||||
{
|
||||
progressMonitor.LogError($"Command {pi.FileName} {pi.Arguments} failed with exit code {exitCode}");
|
||||
logger.LogError($"Command {pi.FileName} {pi.Arguments} failed with exit code {exitCode}");
|
||||
}
|
||||
else
|
||||
{
|
||||
progressMonitor.LogInfo($"Restored file {package}");
|
||||
logger.LogInfo($"Restored file {package}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user