Пример #1
0
        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.");
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }
Пример #6
0
        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.");
            }
        }