using Cake.Common; using Cake.Common.IO; using Cake.Common.IO.Paths; using Cake.Core; using Cake.Frosting; using Cake.Powershell; public static class Program { public static int Main(string[] args) { return new CakeHost() .UseContext() .Run(args); } } public class BuildContext : FrostingContext { /// /// Base source directory /// public ConvertableDirectoryPath BaseSourceLocation { get; set; } /// /// Powershell module project folder /// public ConvertableDirectoryPath PowershellModuleProjectDirectory { get; set; } /// /// Powershell module csproj location /// public ConvertableFilePath PowershellModuleCsproj { get; set; } /// /// Output directory for built DLLs and powershell module manifest files /// public ConvertableDirectoryPath PowershellModuleOutputDir { get; set; } /// /// Path to powershell script that creates the module manifest files /// public ConvertableFilePath CreateModuleManifestScript { get; set; } public BuildContext(ICakeContext context) : base(context) { BaseSourceLocation = context.Directory("../src"); PowershellModuleProjectDirectory = BaseSourceLocation + context.Directory("PowershellModule"); PowershellModuleCsproj = PowershellModuleProjectDirectory + context.File("PowershellModule.csproj"); PowershellModuleOutputDir = context.Directory("../") + context.Directory("output") + context.Directory("PowershellModule"); var buildScriptDirectory = context.Directory("./Scripts"); CreateModuleManifestScript = buildScriptDirectory + context.File("CreateModuleManifest.ps1"); } }