internal override IEnumerable <RegisteredTask> LoadPlugins() { AppDomain.CurrentDomain.AssemblyResolve += ResolveAssembly; IEnumerable <string> cakeTasksDirs = AddinFinder.Find(PluginsDir); foreach (string cakeTasksDir in cakeTasksDirs) { //TODO: Need to support for framework targets string dllDir = Path.Combine(cakeTasksDir, "lib", "netstandard2.0"); if (!Directory.Exists(dllDir)) { continue; } string[] dllFiles = Directory.GetFiles(dllDir, "*.dll", SearchOption.TopDirectoryOnly); foreach (string dllFile in dllFiles) { IEnumerable <RegisteredTask> dllPlugins = FindPlugins(dllFile); foreach (RegisteredTask dllPlugin in dllPlugins) { yield return(dllPlugin); } } } }
public void Simple() { var processor = new AddinFinder(); processor.AddToolsAssemblyLocationToAddinSearch(); var expected = Path.GetFullPath(Path.Combine(AssemblyLocation.CurrentDirectory(), @"..\..\")); Assert.AreEqual(expected, processor.AddinSearchPaths[0]+@"\"); }
private void InitializeConfiguration() { // Setup action to initialize some really core stuff, including directories and version // details. RegisterSetupAction(ctx => { Log.Verbose("Initializing Cake.Tasks configuration."); TaskConfig config = TaskConfig.Current; EnvConfig env = config.Load <EnvConfig>(); env.Name = Path.GetFileName(ctx.Environment.WorkingDirectory.FullPath) .Replace('.', '-') .Replace(' ', '-') .Replace('_', '-') .Trim(); env.Configuration = ctx.Arguments.GetArgument("Configuration") ?? "Release"; env.IsCi = false; env.Branch = null; env.Directories.Working = ctx.Environment.WorkingDirectory.FullPath; string outputDirectory = Path.Combine(env.Directories.Working, ".ci"); env.Directories.Artifacts = Path.Combine(outputDirectory, "artifacts"); env.Directories.BinaryOutput = Path.Combine(outputDirectory, "binaries"); env.Directories.PublishOutput = Path.Combine(outputDirectory, "publish"); env.Directories.TestOutput = Path.Combine(outputDirectory, "testresults"); env.Version.BuildNumber = "1"; env.Version.Primary = (Func <string>)(() => $"0.{env.Version.BuildNumber.Resolve()}.0"); env.Version.Full = (Func <string>)(() => env.Version.Primary.Resolve()); env.Version.Build = (Func <string>)(() => $"{env.Version.Full.Resolve()}+{env.Version.BuildNumber.Resolve()}"); // Display the subdirectories under the tools/Addins directory. // To verify the versions of the addins and tools installed. // Useful for troubleshooting. //TODO: Make this a configuration ctx.LogHighlight("--------------------"); ctx.LogHighlight("Addin subdirectories"); ctx.LogHighlight("--------------------"); string addinsBaseDir = Path.Combine(env.Directories.Working, "tools", "Addins"); if (Directory.Exists(addinsBaseDir)) { IEnumerable <string> addinsDirs = AddinFinder.Find(addinsBaseDir); IEnumerable <string> otherDirs = Directory.EnumerateDirectories(addinsBaseDir, "*", SearchOption.TopDirectoryOnly) .Except(addinsDirs, StringComparer.OrdinalIgnoreCase); foreach (string addinsDir in addinsDirs) { ctx.LogHighlight(Path.GetFileName(addinsDir)); } foreach (string otherDir in otherDirs) { ctx.Log.Information(Path.GetFileName(otherDir)); } } return(config); }); }
public void WithNuGetPackageRoot() { var combine = Path.GetFullPath(Path.Combine(AssemblyLocation.CurrentDirectory, "../../../Fody/FakeNuGetPackageRoot")); var nuGetPackageRoot = Path.GetFullPath(combine); var result = AddinFinder.ScanNuGetPackageRoot(nuGetPackageRoot) .Select(s => s.Replace(@"\\", @"\").Replace(combine, "")).ToList(); ObjectApprover.VerifyWithJson(result); }
public void GetPackagesPathWithNugetConfigAndNoPath() { var processor = new AddinFinder { Logger = new Mock<BuildLogger>().Object, SolutionDir = "DirWithNugetConfigAndNoPath" }; processor.FindNugetPackagePath(); Assert.AreEqual(Path.Combine("DirWithNugetConfigAndNoPath", "Packages"), processor.PackagesPath); }
public void GetPackagesPathDefault() { var processor = new AddinFinder { Logger = new Mock<BuildLogger>().Object, SolutionDir = Environment.CurrentDirectory }; processor.FindNugetPackagePath(); Assert.AreEqual(Path.Combine(Environment.CurrentDirectory, "Packages"), processor.PackagesPath); }
public void Simple() { var processor = new AddinFinder { SolutionDirectoryPath = "Solution" }; processor.AddToolsSolutionDirectoryToAddinSearch(); var searchPaths = processor.AddinSearchPaths; Assert.AreEqual(@"Solution\Tools", searchPaths[0]); }
public void GetPackagesPathDefault() { var processor = new AddinFinder { Logger = new Mock <BuildLogger>().Object, SolutionDir = Environment.CurrentDirectory }; processor.FindNugetPackagePath(); Assert.AreEqual(Path.Combine(Environment.CurrentDirectory, "Packages"), processor.PackagesPath); }
public void GetPackagesPathWithNugetConfigAndNoPath() { var processor = new AddinFinder { Logger = new Mock <BuildLogger>().Object, SolutionDir = "DirWithNugetConfigAndNoPath" }; processor.FindNugetPackagePath(); Assert.AreEqual(Path.Combine("DirWithNugetConfigAndNoPath", "Packages"), processor.PackagesPath); }
public void NoNugetConfig() { var processor = new AddinFinder { SolutionDir = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "../../NugetPackagePathFinder/FakeSolution")), Logger = new Mock<BuildLogger>().Object }; processor.FindNugetPackagePath(); Assert.IsTrue(processor.PackagesPath.EndsWith("\\FakeSolution\\Packages")); }
public void Simple() { var processor = new AddinFinder { SolutionDirectoryPath = Environment.CurrentDirectory }; processor.AddNugetDirectoryToAddinSearch(); var searchPaths = processor.AddinSearchPaths; var expected = Path.Combine(Environment.CurrentDirectory, "Packages"); Assert.AreEqual(expected , searchPaths[0]); }
public void NoNugetConfig() { var processor = new AddinFinder { SolutionDir = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "../../NugetPackagePathFinder/FakeSolution")), Logger = new Mock <BuildLogger>().Object }; processor.FindNugetPackagePath(); Assert.IsTrue(processor.PackagesPath.EndsWith("\\FakeSolution\\Packages")); }
public void Simple() { var logger = new Mock<BuildLogger>().Object; var processor = new AddinFinder { Logger = logger, SolutionDir = "Solution" }; processor.AddToolsSolutionDirectoryToAddinSearch(); var searchPaths = processor.AddinSearchPaths; Assert.AreEqual(Path.GetFullPath(@"Solution\Tools"), searchPaths[0]); }
public void Simple() { var loggerMock = new Mock<BuildLogger>(); loggerMock.Setup(x => x.LogInfo("Directory added to addin search paths 'Path'.")); var processor = new AddinFinder { AddinSearchPaths = new List<string> {"Path"}, Logger = loggerMock.Object }; processor.LogAddinSearchPaths(); loggerMock.Verify(); }
public void Valid() { var processor = new AddinFinder { AddinSearchPaths = new List<string> { Path.GetFullPath("Packages") } }; processor.CacheAllFodyAddinDlls(); Assert.IsNotNull( processor.FindAddinAssembly("SampleTask")); }
static void Verify(string combine) { var addinFinder = new AddinFinder( log: s => { }, solutionDirectory: Path.Combine(combine, "Solution"), msBuildTaskDirectory: Path.Combine(combine, "MsBuildDirectory/1/2/3"), nuGetPackageRoot: Path.Combine(combine, "NuGetPackageRoot"), packageDefinitions: null); addinFinder.FindAddinDirectories(); ObjectApprover.VerifyWithJson(addinFinder.FodyFiles.Select(x => x.Replace(combine, ""))); }
public void NotFound() { var processor = new AddinFinder { AddinSearchPaths = new List<string> { Path.GetFullPath("Packages") } }; processor.CacheAllFodyAddinDlls(); Assert.IsNull(processor.FindAddinAssembly("DoesNotExist")); }
public void WithNuGetPackageRoot() { var combine = Path.GetFullPath(Path.Combine(AssemblyLocation.CurrentDirectory, "Fody/FakeNuGetPackageRoot")); var nuGetPackageRoot = Path.GetFullPath(combine); var result = AddinFinder.ScanDirectoryForPackages(nuGetPackageRoot) .Select(s => s.Replace(@"\\", @"\").Replace(combine, "")) .ToList(); #if NET46 // TODO: Remove when ObjectApproval supports .NET Core ObjectApprover.VerifyWithJson(result); #endif }
public void Simple() { var logger = new Mock<BuildLogger>().Object; var processor = new AddinFinder { Logger = logger, PackagesPath = Environment.CurrentDirectory }; processor.AddNugetDirectoryToAddinSearch(); var searchPaths = processor.AddinSearchPaths; Assert.AreEqual(Environment.CurrentDirectory, searchPaths[0]); }
static void Verify(string combine) { var addinFinder = new AddinFinder( log: s => { }, solutionDirectory: Path.Combine(combine, "Solution"), msBuildTaskDirectory: Path.Combine(combine, "MsBuildDirectory/1/2/3"), nuGetPackageRoot: Path.Combine(combine, "NuGetPackageRoot"), weaverFilesFromProps: new List <string>()); addinFinder.FindAddinDirectories(); ObjectApprover.VerifyWithJson(addinFinder.FodyFiles.Select(x => x.Replace(combine, "").Replace("packages", "Packages"))); }
public void NotFound() { var processor = new AddinFinder { AddinSearchPaths = new List <string> { Path.GetFullPath("Packages") } }; processor.CacheAllFodyAddinDlls(); Assert.IsNull(processor.FindAddinAssembly("DoesNotExist")); }
public void WithNuGetPackageRoot() { var combine = Path.GetFullPath(Path.Combine(AssemblyLocation.CurrentDirectory, "Fody/FakeNuGetPackageRoot")); var nuGetPackageRoot = Path.GetFullPath(combine); var result = AddinFinder.ScanDirectoryForPackages(nuGetPackageRoot) .Select(s => s.Replace(@"\\", @"\").Replace(combine, "")) .ToList(); using (ApprovalResults.UniqueForRuntime()) { ObjectApprover.VerifyWithJson(result); } }
public void Valid() { var processor = new AddinFinder { AddinSearchPaths = new List <string> { Path.GetFullPath("Packages") } }; processor.CacheAllFodyAddinDlls(); Assert.IsNotNull(processor.FindAddinAssembly("SampleTask")); }
public void Simple() { var logger = new Mock <BuildLogger>().Object; var processor = new AddinFinder { Logger = logger, SolutionDir = "Solution" }; processor.AddToolsSolutionDirectoryToAddinSearch(); var searchPaths = processor.AddinSearchPaths; Assert.AreEqual(Path.GetFullPath(@"Solution\Tools"), searchPaths[0]); }
public void Simple() { var path = Path.Combine(Directory.GetParent(AssemblyLocation.CurrentDirectory()).FullName, "Tools"); Directory.CreateDirectory(path); var logger = new Mock<BuildLogger>().Object; var processor = new AddinFinder { Logger = logger, SolutionDir = "Solution" }; processor.AddToolsAssemblyLocationToAddinSearch(); var searchPaths = processor.AddinSearchPaths; Assert.AreEqual(path, searchPaths[0]); }
public void Simple() { var logger = new Mock <BuildLogger>().Object; var processor = new AddinFinder { Logger = logger, PackagesPath = Environment.CurrentDirectory }; processor.AddNugetDirectoryToAddinSearch(); var searchPaths = processor.AddinSearchPaths; Assert.AreEqual(Environment.CurrentDirectory, searchPaths[0]); }
public void Simple() { var loggerMock = new Mock <BuildLogger>(); loggerMock.Setup(x => x.LogInfo("Directory added to addin search paths 'Path'.")); var processor = new AddinFinder { AddinSearchPaths = new List <string> { "Path" }, Logger = loggerMock.Object }; processor.LogAddinSearchPaths(); loggerMock.Verify(); }
public void Simple() { var path = Path.Combine(Directory.GetParent(AssemblyLocation.CurrentDirectory()).FullName, "Tools"); Directory.CreateDirectory(path); var logger = new Mock <BuildLogger>().Object; var processor = new AddinFinder { Logger = logger, SolutionDir = "Solution" }; processor.AddToolsAssemblyLocationToAddinSearch(); var searchPaths = processor.AddinSearchPaths; Assert.AreEqual(path, searchPaths[0]); }
void FindWeavers() { var stopwatch = Stopwatch.StartNew(); Logger.LogDebug("Finding weavers"); ReadProjectWeavers(); addinFinder = new AddinFinder(Logger.LogDebug, SolutionDirectory, MSBuildDirectory, NuGetPackageRoot, PackageDefinitions); addinFinder.FindAddinDirectories(); FindWeaverProjectFile(); ConfigureWhenWeaversFound(); ConfigureWhenNoWeaversFound(); Logger.LogDebug($"Finished finding weavers {stopwatch.ElapsedMilliseconds}ms"); }
void FindWeavers() { ReadProjectWeavers(); addinFinder = new AddinFinder { Logger = Logger, SolutionDir = SolutionDir }; addinFinder.FindAddinDirectories(); FindWeaverProjectFile(); ConfigureWhenWeaversFound(); ConfigureWhenNoWeaversFound(); }
void FindWeavers() { var stopwatch = Stopwatch.StartNew(); Logger.LogDebug("Finding weavers"); ReadProjectWeavers(); addinFinder = new AddinFinder(Logger.LogDebug, SolutionDirectory, MSBuildDirectory, NuGetPackageRoot, WeaverFilesFromProps); addinFinder.FindAddinDirectories(); FindWeaverProjectFile(); ConfigureWhenWeaversFound(); ConfigureWhenNoWeaversFound(); ConfigFile.EnsureSchemaIsUpToDate(ProjectDirectory, WeaverFilesFromProps, Weavers, GenerateXsd); Logger.LogDebug($"Finished finding weavers {stopwatch.ElapsedMilliseconds}ms"); }
public void IgnoreInvalidPackageDefinitions() { var root = Path.Combine(AssemblyLocation.CurrentDirectory, "Fody/AddinFinderTest/NewNugetStructure"); var addinFinder = new AddinFinder( log: s => { }, solutionDirectory: Path.Combine(root, "Solution"), msBuildTaskDirectory: Path.Combine(root, "MsBuildDirectory/1/2/3"), nuGetPackageRoot: Path.Combine(root, "NuGetPackageRoot"), packageDefinitions: new List <string> { Path.Combine(root, "Solution/packages/Weaver.Fody/7.0.0"), Path.Combine(root, "Solution/packages/ThisIsATrap.Fody") }); addinFinder.FindAddinDirectories(); Assert.Contains( Path.Combine(root, "Solution/packages/Weaver.Fody/7.0.0/Weaver.Fody.dll").Replace('/', Path.DirectorySeparatorChar), addinFinder.FodyFiles.Select(i => i.Replace('/', Path.DirectorySeparatorChar)) ); }
void FindWeavers() { var stopwatch = Stopwatch.StartNew(); Logger.LogDebug("Finding weavers"); ReadProjectWeavers(); addinFinder = new AddinFinder { Logger = Logger, SolutionDirectoryPath = SolutionDirectoryPath }; addinFinder.FindAddinDirectories(); FindWeaverProjectFile(); ConfigureWhenWeaversFound(); ConfigureWhenNoWeaversFound(); Logger.LogDebug(string.Format("Finished finding weavers {0}ms", stopwatch.ElapsedMilliseconds)); }
void FindWeavers() { ReadProjectWeavers(); addinFinder = new AddinFinder { Logger = Logger, SolutionDirectoryPath = SolutionDirectoryPath }; addinFinder.FindAddinDirectories(); FindWeaverProjectFile(); ConfigureWhenWeaversFound(); ConfigureWhenNoWeaversFound(); }
public int GetHashCode(string obj) { return(AddinFinder.GetAddinNameFromWeaverFile(obj)?.GetHashCode() ?? 0); }
void FindWeavers() { var stopwatch = Stopwatch.StartNew(); Logger.LogInfo("Finding weavers"); ReadProjectWeavers(); addinFinder = new AddinFinder { Logger = Logger, SolutionDirectoryPath = SolutionDirectoryPath }; addinFinder.FindAddinDirectories(); FindWeaverProjectFile(); ConfigureWhenWeaversFound(); ConfigureWhenNoWeaversFound(); Logger.LogInfo(string.Format("Finished finding weavers {0}ms", stopwatch.ElapsedMilliseconds)); }
public bool Equals(string x, string y) { return(string.Equals(AddinFinder.GetAddinNameFromWeaverFile(x), AddinFinder.GetAddinNameFromWeaverFile(y), StringComparison.OrdinalIgnoreCase)); }
void FindWeavers() { var stopwatch = Stopwatch.StartNew(); Logger.LogDebug("Finding weavers"); ReadProjectWeavers(); addinFinder = new AddinFinder { Logger = Logger, SolutionDirectoryPath = SolutionDirectory, NuGetPackageRoot = NuGetPackageRoot }; addinFinder.FindAddinDirectories(); FindWeaverProjectFile(); ConfigureWhenWeaversFound(); ConfigureWhenNoWeaversFound(); Logger.LogDebug($"Finished finding weavers {stopwatch.ElapsedMilliseconds}ms"); }