Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
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)}"));
        }
Ejemplo n.º 4
0
 public static void DeleteDirectory(DirectoryPath path, DeleteDirectorySettings settings)
 => Context.DeleteDirectory(path, settings);