public static void CakeCleanPackage( this ICakeContext context, CakeCleanPackageSettings settings) { if (string.IsNullOrEmpty(settings.Id)) { throw new ArgumentNullException("Id is empty"); } if (string.IsNullOrEmpty(settings.Version)) { throw new ArgumentNullException("Version is empty"); } if (settings.ToolsDirectory?.FullPath is null || string.IsNullOrEmpty(settings.ToolsDirectory.FullPath)) { throw new ArgumentNullException("Tools directory path is empty"); } var deleteSettings = new DeleteDirectorySettings { Force = true, Recursive = true }; var addinDirectory = context.Directory( $"{settings.ToolsDirectory}/Addins/{settings.Id}.{settings.Version}"); if (context.DirectoryExists(addinDirectory)) { context.Information($"Removing {addinDirectory}"); context.DeleteDirectory(addinDirectory, deleteSettings); } var toolsDirectory = context.Directory( $"{settings.ToolsDirectory}/{settings.Id}.{settings.Version}"); if (context.DirectoryExists(toolsDirectory)) { context.Information($"Removing {toolsDirectory}"); context.DeleteDirectory(toolsDirectory, deleteSettings); } }
public static void DeleteDirectories(this ICakeContext cakeContext, DeleteHelpersConfig config) { DirectoryPathCollection dirs = cakeContext.GetDirectories(config.FullDirectory.ToString()); List <DirectoryPath> orderedDirs = dirs.OrderBy(f => System.IO.Directory.GetCreationTime(f.ToString())).ToList(); while (orderedDirs.Count > config.NumberOfFilesToKeep) { DirectoryPath dir = orderedDirs[0]; cakeContext.Information($"Deleting '{dir}'"); if (config.DryRun == false) { DeleteDirectorySettings dirSettings = new DeleteDirectorySettings { Force = true, Recursive = true }; cakeContext.DeleteDirectory(dir, dirSettings); } orderedDirs.RemoveAt(0); } }
/// <summary> /// Installs a NuGet package into the specified directory /// </summary> /// <param name="context">Cake runtime context</param> /// <param name="targetDirectory">Target directory path</param> /// <param name="nugetPackage">NuGet package path</param> public static void CakeInstallPackage( ICakeContext context, DirectoryPath targetDirectory, FilePath nugetPackage) { var deleteSettings = new DeleteDirectorySettings { Force = true, Recursive = true }; if (context.DirectoryExists(targetDirectory)) { context.Information($"Cleaning: {targetDirectory}"); context.DeleteDirectory(targetDirectory, deleteSettings); } context.Information($"Installing {nugetPackage} to {targetDirectory}"); context.Unzip(nugetPackage, targetDirectory); context.CopyFile( nugetPackage, context.File($"{targetDirectory}/{System.IO.Path.GetFileName(nugetPackage.FullPath)}")); }
public static void DeleteDirectory(DirectoryPath path, DeleteDirectorySettings settings) => Context.DeleteDirectory(path, settings);