Nuke.Cola
Loading...
Searching...
No Matches
DotnetProjectPluginProvider.cs
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Threading.Tasks;
6using Nuke.Common.IO;
7using Nuke.Common.Tooling;
8using Nuke.Common.Tools.DotNet;
9
11
12/// <summary>
13/// Gather build plugins defined as a .NET project following the
14/// file name format `*.Nuke.csproj`. Currently only C# is supported
15/// as only C# can declare default interface member implementations.
16/// </summary>
18{
19 public IEnumerable<IHavePlugin> GatherPlugins(BuildContext context)
20 => context.Root.SearchFiles("**/*.Nuke.csproj")
21 .Select(f => new DotnetProjectPlugin
22 {
23 SourcePath = f
24 });
25
26 public void InitializeEngine(BuildContext context) {}
27}
Gather build plugins defined as a .NET project following the file name format *.Nuke....
void InitializeEngine(BuildContext context)
One time initialization of the provider.
IEnumerable< IHavePlugin > GatherPlugins(BuildContext context)
Gathering plugins from the provided context.
Encapsulates a .NET project (*.*proj) which contains build interfaces.
Implementations of this interface must represent a plugin system which might have a distinct logic an...
record class BuildContext(AbsolutePath Temporary, AbsolutePath Root)
Local paths for plugin discovery and compilation.