Skip to content

Commit 564b968

Browse files
committed
C#: Introduce IFileProvider interface.
1 parent 973d5b5 commit 564b968

9 files changed

Lines changed: 35 additions & 14 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public sealed partial class DependencyManager : IDisposable, ICompilationInfoCon
3030
private readonly DependabotProxy? dependabotProxy;
3131
private readonly IDotNet dotnet;
3232
private readonly FileContent fileContent;
33-
private readonly FileProvider fileProvider;
33+
private readonly IFileProvider fileProvider;
3434

3535
// Only used as a set, but ConcurrentDictionary is the only concurrent set in .NET.
3636
private readonly IDictionary<string, bool> usedReferences = new ConcurrentDictionary<string, bool>();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ internal sealed partial class FeedManager : IDisposable
2121

2222
private readonly ILogger logger;
2323
private readonly IDotNet dotnet;
24-
private readonly FileProvider fileProvider;
24+
private readonly IFileProvider fileProvider;
2525
private readonly DependabotProxy? dependabotProxy;
2626
private readonly DependencyDirectory emptyPackageDirectory;
2727
private readonly ImmutableHashSet<string> privateRegistryFeeds;
@@ -79,7 +79,7 @@ internal sealed partial class FeedManager : IDisposable
7979
/// </summary>
8080
public ImmutableHashSet<string> ReachableFallbackFeeds => lazyReachableFallbackFeeds.Value;
8181

82-
public FeedManager(ILogger logger, IDotNet dotnet, DependabotProxy? dependabotProxy, FileProvider fileProvider)
82+
public FeedManager(ILogger logger, IDotNet dotnet, DependabotProxy? dependabotProxy, IFileProvider fileProvider)
8383
{
8484
this.logger = logger;
8585
this.dotnet = dotnet;

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
using System.Collections.Generic;
33
using System.IO;
44
using System.Linq;
5-
using System.Security.Policy;
65
using Semmle.Util.Logging;
76

87
namespace Semmle.Extraction.CSharp.DependencyFetching
98
{
10-
public class FileProvider
9+
internal class FileProvider : IFileProvider
1110
{
1211
private static readonly HashSet<string> binaryFileExtensions = [".dll", ".exe"]; // TODO: add more binary file extensions.
1312

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System.Collections.Generic;
2+
using System.IO;
3+
4+
namespace Semmle.Extraction.CSharp.DependencyFetching
5+
{
6+
public interface IFileProvider
7+
{
8+
DirectoryInfo SourceDir { get; }
9+
IEnumerable<string> SmallNonBinary { get; }
10+
IEnumerable<string> Sources { get; }
11+
ICollection<string> Projects { get; }
12+
ICollection<string> Solutions { get; }
13+
IEnumerable<string> Dlls { get; }
14+
ICollection<string> NugetConfigs { get; }
15+
ICollection<string> NugetExes { get; }
16+
string? RootNugetConfig { get; }
17+
IEnumerable<string> GlobalJsons { get; }
18+
ICollection<string> PackagesConfigs { get; }
19+
ICollection<string> RazorViews { get; }
20+
ICollection<string> Resources { get; }
21+
}
22+
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
1515
{
1616
internal sealed partial class NugetPackageRestorer : IDisposable
1717
{
18-
private readonly FileProvider fileProvider;
18+
private readonly IFileProvider fileProvider;
1919
private readonly FileContent fileContent;
2020
private readonly IDotNet dotnet;
2121
private readonly IDiagnosticsWriter diagnosticsWriter;
@@ -29,7 +29,7 @@ internal sealed partial class NugetPackageRestorer : IDisposable
2929

3030

3131
public NugetPackageRestorer(
32-
FileProvider fileProvider,
32+
IFileProvider fileProvider,
3333
FileContent fileContent,
3434
IDotNet dotnet,
3535
DependabotProxy? dependabotProxy,

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ internal interface IPackagesConfigRestore
3434
/// </summary>
3535
internal class PackagesConfigRestoreFactory
3636
{
37-
public static IPackagesConfigRestore Create(FileProvider fileProvider, DependencyDirectory packageDirectory, Semmle.Util.Logging.ILogger logger, FeedManager feedManager)
37+
public static IPackagesConfigRestore Create(IFileProvider fileProvider, DependencyDirectory packageDirectory, Semmle.Util.Logging.ILogger logger, FeedManager feedManager)
3838
{
3939
if (SystemBuildActions.Instance.IsWindows() || SystemBuildActions.Instance.IsMonoInstalled())
4040
{
@@ -56,7 +56,7 @@ private class NugetExeWrapper : IPackagesConfigRestore
5656

5757
public int PackageCount => fileProvider.PackagesConfigs.Count;
5858

59-
private readonly FileProvider fileProvider;
59+
private readonly IFileProvider fileProvider;
6060

6161
/// <summary>
6262
/// The packages directory.
@@ -75,7 +75,7 @@ private class NugetExeWrapper : IPackagesConfigRestore
7575
/// <summary>
7676
/// Create the package manager for a specified source tree.
7777
/// </summary>
78-
public NugetExeWrapper(FileProvider fileProvider, DependencyDirectory packageDirectory, Semmle.Util.Logging.ILogger logger, FeedManager feedManager)
78+
public NugetExeWrapper(IFileProvider fileProvider, DependencyDirectory packageDirectory, Semmle.Util.Logging.ILogger logger, FeedManager feedManager)
7979
{
8080
this.fileProvider = fileProvider;
8181
this.packageDirectory = packageDirectory;

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SourceGenerators/DotnetSourceGeneratorBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
99
{
1010
internal abstract class DotnetSourceGeneratorBase<T> : SourceGeneratorBase where T : DotnetSourceGeneratorWrapper
1111
{
12-
protected readonly FileProvider fileProvider;
12+
protected readonly IFileProvider fileProvider;
1313
protected readonly FileContent fileContent;
1414
protected readonly IDotNet dotnet;
1515
protected readonly ICompilationInfoContainer compilationInfoContainer;
1616
protected readonly IEnumerable<string> references;
1717

1818
public DotnetSourceGeneratorBase(
19-
FileProvider fileProvider,
19+
IFileProvider fileProvider,
2020
FileContent fileContent,
2121
IDotNet dotnet,
2222
ICompilationInfoContainer compilationInfoContainer,

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SourceGenerators/RazorGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
88
internal class RazorGenerator : DotnetSourceGeneratorBase<Razor>
99
{
1010
public RazorGenerator(
11-
FileProvider fileProvider,
11+
IFileProvider fileProvider,
1212
FileContent fileContent,
1313
IDotNet dotnet,
1414
ICompilationInfoContainer compilationInfoContainer,

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SourceGenerators/ResxGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ internal class ResxGenerator : DotnetSourceGeneratorBase<Resx>
1010
private readonly string? sourceGeneratorFolder = null;
1111

1212
public ResxGenerator(
13-
FileProvider fileProvider,
13+
IFileProvider fileProvider,
1414
FileContent fileContent,
1515
IDotNet dotnet,
1616
ICompilationInfoContainer compilationInfoContainer,

0 commit comments

Comments
 (0)