Exemple #1
0
        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);
            }
        }