protected override void ProcessRecord() { if (MyInvocation.BoundParameters.ContainsKey("FilePath") & (!ProjectTemplate.TemplateNameValidator(FilePath))) { ProjectTemplate.InvalidFileName(); } else { if (!(MyInvocation.BoundParameters.ContainsKey("FilePath"))) { FilePath = Directory.GetCurrentDirectory() + $"\\PoshProjectTemplate.xml"; } if (!(MyInvocation.BoundParameters.ContainsKey("Author"))) { if (!string.IsNullOrEmpty(ProjectTemplate.GetUserName())) { Author = ProjectTemplate.GetUserName(); } else { Author = Environment.UserName; } } if (!(MyInvocation.BoundParameters.ContainsKey("Directories"))) { if (ProjectType == "Script") { Directories = new string[] { $"{ProjectName}.tests.ps1" }; } else if (ProjectType == "Module") { Directories = new string[] { "Classes", "Private", "Public", "docs", "en-US", "Tests" }; } else { Directories = new string[] { "Output", ProjectName, "src", "docs", "en-US", "Tests" }; } } if (!(MyInvocation.BoundParameters.ContainsKey("Description"))) { Description = $"Module for {ProjectName}"; } if (!(MyInvocation.BoundParameters.ContainsKey("Tags"))) { Tags = new string[] { "PowerShell", $"{ProjectName}Module", ProjectName }; } ProjectTemplate.NewTemplate(ProjectName, FilePath, ProjectType, Author, Directories, Description, Guid.ToString(), Tags, Version, DependsOn, License); } }