Files
eveo/build/Lifetime.cs
2021-03-01 23:26:23 +02:00

59 lines
1.6 KiB
C#

using Cake.Common.Diagnostics;
using Cake.Common.IO;
using Cake.Common.Net;
using Cake.Core;
using Cake.Core.IO;
using Cake.Frosting;
namespace Build
{
public sealed class Lifetime : FrostingLifetime<Context>
{
private const string NuGetUrl = @"https://dist.nuget.org/win-x86-commandline/latest/nuget.exe";
private void DeleteDirectory(Context context, string directoryName)
{
if (!context.DirectoryExists(directoryName))
{
return;
}
context.DeleteDirectory(directoryName, new DeleteDirectorySettings { Force = true, Recursive = true });
}
private void DownloadNuGet(Context context)
{
if (context.FileExists(Configuration.ToolsFolder + "/nuget.exe"))
{
return;
}
if (!context.DirectoryExists(Configuration.ToolsFolder))
{
context.CreateDirectory(Configuration.ToolsFolder);
}
var tempFile = context.DownloadFile(NuGetUrl);
context.CopyFile(tempFile, new FilePath(Configuration.ToolsFolder + "/nuget.exe"));
}
public override void Setup(Context context)
{
context.Information("Setting things up...");
context.Information("Delete bin and publish folders");
this.DeleteDirectory(context, Configuration.BinFolder);
this.DeleteDirectory(context, Configuration.PublishFolder);
context.Information("Download NuGet");
this.DownloadNuGet(context);
}
public override void Teardown(Context context, ITeardownContext info)
{
context.Information("Tearing things down...");
//this.DeleteDirectory(context, ToolsDirectoryName);
}
}
}