internal static async Task ExtractAsync(string inputFile, string destinationDir, TextWriter output, TextWriter error) { try { if (File.Exists(inputFile)) { if (destinationDir == ".") { destinationDir = System.Environment.CurrentDirectory; } Fs.EnsureFolderExists(destinationDir); output.WriteCommandHeader($"Extracting {inputFile} to {destinationDir}..."); await templatePackage.ExtractAsync(inputFile, destinationDir).ConfigureAwait(false); } else { error.WriteCommandText($"{inputFile} is not a valid folder to create a Templates Package."); } } catch (Exception ex) { error.WriteException(ex, "Unexpected exception extracting templates package."); } }
public static string GetTempGenerationPath(string projectName) { string projectGuid = ToolBox.Shell.Project.GetProjectGuidByName(GenContext.Current.ProjectName).ToString(); var projectTempFolder = Path.Combine(_tempGenerationFolder, projectGuid); Fs.EnsureFolderExists(projectTempFolder); var tempGenerationName = $"{projectName}_{DateTime.Now.FormatAsShortDateTime()}"; var inferredName = NamingService.Infer(tempGenerationName, new List <Validator> { new FolderNameValidator(projectTempFolder) }, "_"); return(Path.Combine(projectTempFolder, inferredName, projectName)); }
public void EnsureFolderExists_DirectoryDoesNotExists_ShouldCreateDirectory() { var testScenarioName = "DirectoryDoesNotExists"; var directoryToCreate = $"{_testFolder}\\{testScenarioName}"; var directoryExistsAtStart = Directory.Exists(directoryToCreate); var totalOriginalDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length; Fs.EnsureFolderExists(directoryToCreate); var totalNewDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length; Assert.True(totalNewDirectories > totalOriginalDirectories); Assert.False(directoryExistsAtStart); Assert.True(Directory.Exists(directoryToCreate)); }
private static string PrepareResultDir(string prepareDir, string version, TextWriter output) { var prepareDirPath = new DirectoryInfo(prepareDir).Parent.FullName; var resultDir = Path.Combine(prepareDirPath, $"Preparation_v{version}"); if (Directory.Exists(resultDir)) { output.WriteCommandText("The target directory already exists, cleaning..."); Fs.SafeDeleteDirectory(resultDir); } else { Fs.EnsureFolderExists(resultDir); } return(resultDir); }
public void EnsureFolderExists_ErrorCreatingDirectory_ShouldLogException() { // To force an error creating a Directory // we create a file with the name of the folder that we want to create var testScenarioName = "ErrorCreatingDirectory"; var wrongDirectoryToCreate = $"{testScenarioName}\\{testScenarioName}.cs"; FSTestsFixture.CreateFolders(_testFolder, new List <string> { testScenarioName }); FSTestsFixture.CreateFiles(_testFolder, new List <string> { wrongDirectoryToCreate }); _logDate = DateTime.Now; Fs.EnsureFolderExists($"{_testFolder}\\{wrongDirectoryToCreate}"); Assert.True(_fixture.IsErrorMessageInLogFile(_logDate, ErrorLevel, ErrorMessage)); }
public void EnsureFolderExists_DirectoryAlreadyExists_ShouldNotCreateDirectory() { var testScenarioName = "DirectoryAlreadyExists"; var directoryToCreate = $"{_testFolder}\\{testScenarioName}"; FSTestsFixture.CreateFolders(_testFolder, new List <string> { testScenarioName }); var directoryExistsAtStart = Directory.Exists(directoryToCreate); var totalOriginalDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length; Fs.EnsureFolderExists(directoryToCreate); var totalNewDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length; Assert.True(totalOriginalDirectories == totalNewDirectories); Assert.True(directoryExistsAtStart); Assert.True(Directory.Exists(directoryToCreate)); }
public static void DownloadContent(RemoteSourceDownloadOptions options, TextWriter output, TextWriter error) { try { var shortLanguage = ProgrammingLanguages.GetShortProgrammingLanguage(options.Language); output.WriteCommandHeader($"Downloading templates content from environment {options.Env.ToString()} ({options.StorageAccount})"); TemplatesSourceConfig config = GetConfigFromCdn(options.Env); TemplatesPackageInfo package = null; if (options.Version != null) { package = ResolvePackageForVersion(config, options.Version, options.Platform, shortLanguage, output); } else { package = config.Latest; } if (package != null) { Fs.EnsureFolderExists(options.Destination); var result = RemoteSource.DownloadCdnElement(Environments.CdnUrls[options.Env], package.Name, options.Destination); output.WriteLine(); output.WriteCommandText($"Successfully downloaded '{result}'"); output.WriteLine(); } else { output.WriteLine(); output.WriteCommandText($"Package not found for the version '{options.Version}', platform '{options.Platform}' and laguage '{options.Language}'"); output.WriteLine(); } } catch (Exception ex) { error.WriteException(ex, $"Unable to download the file content from the specified environment."); } }