Ejemplo n.º 1
0
        public async Task ExtractToFolder(Stream stream, string folderPath)
        {
            var temp = FileUtils.GetTempDirectoryName();

            await Observable.Start(() =>
            {
                using (var zip = new ZipArchive(stream, ZipArchiveMode.Read, false))
                {
                    zip.ExtractToDirectory(temp);
                }
            });

            var folderName = Path.GetFileName(folderPath);

            if (fileSystemOperations.DirectoryExists(folderPath))
            {
                await fileSystemOperations.DeleteDirectory(folderPath);
            }

            var firstChild = Path.Combine(temp, folderName);

            await fileSystemOperations.CopyDirectory(firstChild, folderPath);

            await fileSystemOperations.DeleteDirectory(temp);
        }
        /// <summary>
        /// Deletes a package from the store.
        /// </summary>
        /// <param name="packageId">The ID of the package to delete.</param>
        /// <param name="packageVersion">The version of the package to delete.</param>
        /// <exception cref="ArgumentNullException"><paramref name="packageId"/> is null or contains only whitespace or <paramref name="packageVersion"/> is null.</exception>
        public override void DeletePackage(string packageId, SemanticVersion packageVersion)
        {
            if (string.IsNullOrWhiteSpace(packageId))
            {
                throw new ArgumentNullException("packageId");
            }
            if (packageVersion == null)
            {
                throw new ArgumentNullException("packageVersion");
            }

            InitPackageStore();

            _logger.Debug("DeletePackage('" + packageId + "', '" + packageVersion + "') called");

            var packagePath = Path.Combine(RootPath, packageId);

            if (_fileSystemOperations.DirectoryExists(packagePath))
            {
                var versionPath = Path.Combine(packagePath, packageId + "." + packageVersion + ".nupkg");
                _logger.Debug("Deleting file '" + versionPath + "'.");
                try
                {
                    _fileSystemOperations.DeleteFile(versionPath);
                }
                catch (Exception ex)
                {
                    _logger.Error(string.Format("Error deleting package '{0}', version '{1}'", packageId, packageVersion), ex);
                    throw;
                }

                if (!_fileSystemOperations.EnumerateFileSystemEntries(packagePath).Any())
                {
                    _logger.Debug("Deleting folder '" + packagePath + "'.");
                    try
                    {
                        _fileSystemOperations.DeleteDirectory(packagePath);
                    }
                    catch (Exception ex)
                    {
                        _logger.Warn(string.Format("Exception while attemptnig to delete folder '{0}')", packagePath), ex);
                    }
                }
            }
            else
            {
                _logger.WarnFormat("Attempted to delete pacakage ('{0}', '{1}') that didn't exist ", packageId, packageVersion);
            }
        }
Ejemplo n.º 3
0
 private void DeleteExistingDump()
 {
     if (fileSystemOperations.DirectoryExists(AppPaths.LogDump))
     {
         fileSystemOperations.DeleteDirectory(AppPaths.LogDump);
     }
 }
Ejemplo n.º 4
0
 private async Task DeleteExistingFolder()
 {
     if (fileSystemOperations.DirectoryExists(AppPaths.Feed))
     {
         await fileSystemOperations.DeleteDirectory(AppPaths.Feed);
     }
 }
Ejemplo n.º 5
0
 private async Task DeleteFeedFolder()
 {
     if (fileSystemOperations.DirectoryExists(FeedFolder))
     {
         await fileSystemOperations.DeleteDirectory(FeedFolder);
     }
 }
Ejemplo n.º 6
0
        private async Task DownloadDeploymentScripts()
        {
            if (fileSystemOperations.DirectoryExists(ScriptsDownloadPath))
            {
                await fileSystemOperations.DeleteDirectory(ScriptsDownloadPath);
            }

            await RunScript(BootstrapPath);
        }
        private async Task CleanDownloadedIfNeeded()
        {
            if (!settingsService.CleanDownloadedBeforeDeployment)
            {
                return;
            }

            if (fileSystemOperations.DirectoryExists(AppPaths.DownloadedFolderName))
            {
                Log.Information("Deleting previously downloaded deployment files");
                await fileSystemOperations.DeleteDirectory(AppPaths.DownloadedFolderName);
            }
        }