Skip to content

Commit 69c4309

Browse files
committed
Fix review findings
1 parent e3fe9f7 commit 69c4309

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ public DependencyManager(string srcDir, ILogger logger)
8282
$"dependency-manager-{DateTime.UtcNow:yyyyMMddHHmm}-{Environment.ProcessId}.jsonc"));
8383
this.sourceDir = new DirectoryInfo(srcDir);
8484

85-
tempWorkingDirectory = new TemporaryDirectory(FileUtils.GetTemporaryWorkingDirectory(out cleanupTempWorkingDirectory));
85+
tempWorkingDirectory = new TemporaryDirectory(
86+
FileUtils.GetTemporaryWorkingDirectory(out cleanupTempWorkingDirectory),
87+
"temporary working",
88+
logger);
8689

8790
this.fileProvider = new FileProvider(sourceDir, logger);
8891
this.fileContent = new FileContent(logger, this.fileProvider.SmallNonBinary);
@@ -665,25 +668,9 @@ private void AnalyseProject(FileInfo project)
665668
}
666669
}
667670

668-
public static void DisposeTempDirectory(TemporaryDirectory? dir, string name, ILogger logger)
669-
{
670-
try
671-
{
672-
dir?.Dispose();
673-
}
674-
catch (Exception exc)
675-
{
676-
logger.LogInfo($"Couldn't delete {name} directory {exc.Message}");
677-
}
678-
}
679-
680671
public void Dispose()
681672
{
682-
if (cleanupTempWorkingDirectory)
683-
{
684-
DisposeTempDirectory(tempWorkingDirectory, "temporary working", logger);
685-
}
686-
673+
tempWorkingDirectory?.Dispose();
687674
diagnosticsWriter?.Dispose();
688675
nugetPackageRestorer?.Dispose();
689676
}

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ public NugetPackageRestorer(
4343
this.logger = logger;
4444
this.compilationInfoContainer = compilationInfoContainer;
4545

46-
PackageDirectory = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "packages"));
47-
legacyPackageDirectory = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "legacypackages"));
48-
missingPackageDirectory = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "missingpackages"));
46+
PackageDirectory = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "packages"), "package", logger);
47+
legacyPackageDirectory = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "legacypackages"), "legacy package", logger);
48+
missingPackageDirectory = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "missingpackages"), "missing package", logger);
4949
}
5050

5151
public string? TryRestoreLatestNetFrameworkReferenceAssemblies()
@@ -275,7 +275,7 @@ private void RestoreProjects(IEnumerable<string> projects, out IEnumerable<strin
275275
}
276276

277277
logger.LogInfo($"Found {notYetDownloadedPackages.Count} packages that are not yet restored");
278-
using var tempDir = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "nugetconfig"));
278+
using var tempDir = new TemporaryDirectory(ComputeTempDirectoryPath(fileProvider.SourceDir.FullName, "nugetconfig"), "generated nuget config", logger);
279279
var nugetConfig = fallbackNugetFeeds is null
280280
? GetNugetConfig()
281281
: CreateFallbackNugetConfig(fallbackNugetFeeds, tempDir.DirInfo.FullName);
@@ -411,7 +411,8 @@ private static IEnumerable<string> GetRestoredPackageDirectoryNames(DirectoryInf
411411
private bool TryRestorePackageManually(string package, string? nugetConfig = null, PackageReferenceSource packageReferenceSource = PackageReferenceSource.SdkCsProj, bool tryWithoutNugetConfig = true)
412412
{
413413
logger.LogInfo($"Restoring package {package}...");
414-
using var tempDir = new TemporaryDirectory(ComputeTempDirectoryPath(package, "missingpackages_workingdir"));
414+
using var tempDir = new TemporaryDirectory(
415+
ComputeTempDirectoryPath(package, "missingpackages_workingdir"), "missing package working", logger);
415416
var success = dotnet.New(tempDir.DirInfo.FullName);
416417
if (!success)
417418
{
@@ -675,9 +676,9 @@ private IEnumerable<string> GetFeeds(Func<IList<string>> getNugetFeeds)
675676

676677
public void Dispose()
677678
{
678-
DependencyManager.DisposeTempDirectory(PackageDirectory, "package", logger);
679-
DependencyManager.DisposeTempDirectory(legacyPackageDirectory, "legacy package", logger);
680-
DependencyManager.DisposeTempDirectory(missingPackageDirectory, "missing package", logger);
679+
PackageDirectory?.Dispose();
680+
legacyPackageDirectory?.Dispose();
681+
missingPackageDirectory?.Dispose();
681682
}
682683

683684
/// <summary>

csharp/extractor/Semmle.Util/TemporaryDirectory.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.IO;
3+
using Semmle.Util.Logging;
34

45
namespace Semmle.Util
56
{
@@ -9,17 +10,29 @@ namespace Semmle.Util
910
/// </summary>
1011
public sealed class TemporaryDirectory : IDisposable
1112
{
13+
private readonly string userReportedDirectoryPurpose;
14+
private readonly ILogger logger;
15+
1216
public DirectoryInfo DirInfo { get; }
1317

14-
public TemporaryDirectory(string name)
18+
public TemporaryDirectory(string name, string userReportedDirectoryPurpose, ILogger logger)
1519
{
1620
DirInfo = new DirectoryInfo(name);
1721
DirInfo.Create();
22+
this.userReportedDirectoryPurpose = userReportedDirectoryPurpose;
23+
this.logger = logger;
1824
}
1925

2026
public void Dispose()
2127
{
22-
DirInfo.Delete(true);
28+
try
29+
{
30+
DirInfo.Delete(true);
31+
}
32+
catch (Exception exc)
33+
{
34+
logger.LogInfo($"Couldn't delete {userReportedDirectoryPurpose} directory {exc.Message}");
35+
}
2336
}
2437

2538
public override string ToString() => DirInfo.FullName.ToString();

0 commit comments

Comments
 (0)