- Cleaned up code formatting and organization across multiple files for improved readability. - Introduced `OsScanAnalyzerDispatcher` to handle OS analyzer execution and plugin loading. - Updated `ScanJobContext` to include an `Analysis` property for storing scan results. - Enhanced `ScanJobProcessor` to utilize the new `OsScanAnalyzerDispatcher`. - Improved logging and error handling in `ScanProgressReporter` for better traceability. - Updated project dependencies and added references to new analyzer plugins. - Revised task documentation to reflect current status and dependencies.
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Collections.Immutable;
 | |
| 
 | |
| namespace StellaOps.Scanner.EntryTrace;
 | |
| 
 | |
| /// <summary>
 | |
| /// Represents a layered read-only filesystem snapshot built from container layers.
 | |
| /// </summary>
 | |
| public interface IRootFileSystem
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Attempts to resolve an executable by name using the provided PATH entries.
 | |
|     /// </summary>
 | |
|     bool TryResolveExecutable(string name, IReadOnlyList<string> searchPaths, out RootFileDescriptor descriptor);
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Attempts to read the contents of a file as UTF-8 text.
 | |
|     /// </summary>
 | |
|     bool TryReadAllText(string path, out RootFileDescriptor descriptor, out string content);
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Returns descriptors for entries contained within a directory.
 | |
|     /// </summary>
 | |
|     ImmutableArray<RootFileDescriptor> EnumerateDirectory(string path);
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Checks whether a directory exists.
 | |
|     /// </summary>
 | |
|     bool DirectoryExists(string path);
 | |
| }
 | |
| 
 | |
| /// <summary>
 | |
| /// Describes a file discovered within the layered filesystem.
 | |
| /// </summary>
 | |
| public sealed record RootFileDescriptor(
 | |
|     string Path,
 | |
|     string? LayerDigest,
 | |
|     bool IsExecutable,
 | |
|     bool IsDirectory,
 | |
|     string? ShebangInterpreter);
 |