public static Task <IDisposable> TryCreateAsync(IDirectoryAccessor directoryAccessor) { if (directoryAccessor == null) { throw new ArgumentNullException(nameof(directoryAccessor)); } return(TryCreateAsync(directoryAccessor.GetFullyQualifiedFilePath(LockFileName))); }
private static void AddProjectOption( Command command, IDirectoryAccessor directoryAccessor, string projectFileExtension) { var projectOptionArgument = new Argument <FileInfo>( (SymbolResult result, out FileInfo projectFile) => { var projectPath = new RelativeFilePath(result.Tokens.Select(t => t.Value).Single()); if (directoryAccessor.FileExists(projectPath)) { projectFile = directoryAccessor.GetFullyQualifiedFilePath(projectPath); return(true); } result.ErrorMessage = $"Project not found: {projectPath.Value}"; projectFile = null; return(false); }) { Name = "project", Arity = ArgumentArity.ExactlyOne }; projectOptionArgument.SetDefaultValue(() => { var rootDirectory = directoryAccessor.GetFullyQualifiedPath(new RelativeDirectoryPath(".")); var projectFiles = directoryAccessor.GetAllFilesRecursively() .Where(file => directoryAccessor.GetFullyQualifiedPath(file.Directory).FullName == rootDirectory.FullName && file.Extension == projectFileExtension) .ToArray(); if (projectFiles.Length == 1) { return(directoryAccessor.GetFullyQualifiedPath(projectFiles.Single())); } return(null); }); var projectOption = new Option("--project") { Argument = projectOptionArgument }; command.Add(projectOption); }
public ProjectAsset(IDirectoryAccessor directoryAccessor, string csprojFileName = null) : base(directoryAccessor) { if (directoryAccessor == null) { throw new ArgumentNullException(nameof(directoryAccessor)); } if (string.IsNullOrWhiteSpace(csprojFileName)) { var firstProject = DirectoryAccessor.GetAllFiles().Single(f => f.Extension == ".csproj"); _projectFile = DirectoryAccessor.GetFullyQualifiedFilePath(firstProject.FileName); } else { _projectFile = DirectoryAccessor.GetFullyQualifiedFilePath(csprojFileName); } Directory = DirectoryAccessor.GetFullyQualifiedRoot(); Name = _projectFile?.Name ?? Directory?.Name; _lastBuildErrorLogFile = directoryAccessor.GetFullyQualifiedFilePath(".trydotnet-builderror"); _cleanupStep = new PipelineStep <AnalyzerResult>(LoadResultOrCleanAsync); _projectBuildStep = _cleanupStep.Then(BuildProjectAsync); _workspaceStep = _projectBuildStep.Then(BuildWorkspaceAsync); }
private PackageTool(string name, IDirectoryAccessor directoryAccessor) { Name = name; DirectoryAccessor = directoryAccessor; FilePath = DirectoryAccessor.GetFullyQualifiedFilePath(Name.ExecutableName()).FullName; }
public static async Task LoadFromAssembliesInDirectory(this KernelExtensionLoader loader, IDirectoryAccessor directory, IKernel kernel, KernelInvocationContext context, IEnumerable <string> additionalDependencies = null) { if (directory.RootDirectoryExists()) { context.Publish(new DisplayedValueProduced($"Loading kernel extensions in directory {directory.GetFullyQualifiedRoot().FullName}", context.Command)); var extensionDlls = directory.GetAllFiles().Where(file => file.Extension == ".dll").Select(file => directory.GetFullyQualifiedFilePath(file)); foreach (var extensionDll in extensionDlls) { await loader.LoadFromAssembly(extensionDll, kernel, context, additionalDependencies); } context.Publish(new DisplayedValueProduced($"Loaded kernel extensions in directory {directory.GetFullyQualifiedRoot().FullName}", context.Command)); } }
public async Task LoadFromAssembliesInDirectory(IDirectoryAccessor directory, IKernel kernel, PublishEvent publishEvent) { if (directory.RootDirectoryExists()) { var extensionDlls = directory.GetAllFiles().Where(file => file.Extension == ".dll").Select(file => directory.GetFullyQualifiedFilePath(file)); foreach (var extensionDll in extensionDlls) { await LoadFromAssembly(extensionDll, kernel, publishEvent); } } }