PlasterTemplate/plasterManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<plasterManifest schemaVersion="1.0" xmlns="http://www.microsoft.com/schemas/PowerShell/Plaster/v1"> <metadata> <name>Sampler</name> <id>01ff2349-1b77-46dd-a247-ce056aae043c</id> <version>0.0.1</version> <title>Sampler Module Template</title> <description>Sampler Module Template with bootstrap</description> <author>Gael Colas</author> <tags>Template, Build, Module</tags> </metadata> <parameters> <parameter name="ModuleType" type="choice" default='1' prompt="Select the type of Module you would like to create:"> <choice label='Simple &Module Without Build' help="Creates a simple module without the build automation." value="SimpleModule_NoBuild"/> <choice label='&Simple Module with build automation' help="Creates a simple module with minimal structure and build scripts." value="SimpleModule"/> <choice label='Select &features...' help="Will prompt you for more details as to what you'd like to scaffold." value="CustomModule"/> <choice label='&Complete Module Sample' help="Creates a module with complete structure and example file." value="CompleteModule"/> <choice label='Complete &Without Build' help="Creates a module with complete structure and example file, but without Build automation." value="CompleteModule_NoBuild"/> </parameter> <parameter store="text" name="ModuleAuthor" type="text" prompt="Author's name" default="$Env:Username" /> <parameter store="text" name="ModuleName" type="text" prompt="Name of your module" /> <parameter store="text" name="ModuleDescription" type="text" prompt="Description of this module" /> <parameter name="ModuleVersion" type="text" prompt="Module version" default="0.0.1" /> <parameter store="text" name="License" type="choice" prompt="Do you want to include a License to your project?" default="1" condition='$PLASTER_PARAM_ModuleType -eq "CustomModule"' > <choice label='&Yes' value='true' /> <choice label='&No' value='false' /> </parameter> <parameter store="text" name="LicenseType" type="choice" prompt="What license do you want?" default="2" condition='$PLASTER_PARAM_License -eq "true" -and $PLASTER_PARAM_ModuleType -eq "CustomModule"' > <choice label='&Apache' help="Adds an Apache license file." value="Apache" /> <choice label='&MIT' help="Adds an MIT license file." value="MIT" /> <choice label='&None' help="No license specified." value="None" /> </parameter> <parameter store="text" name="SourceDirectory" type="choice" prompt="What name do you give your source folder?" default="1" condition=""> <choice label="&The Module's name (${PLASTER_PARAM_ModuleName})" value="${PLASTER_PARAM_ModuleName}" /> <choice label="&source" value="source" /> <choice label="s&rc" value="src" /> </parameter> <parameter name="Features" type="multichoice" prompt="What feature would you like to add to your project?" default="0" condition='$PLASTER_PARAM_ModuleType -eq "CustomModule"' > <choice label='&*All' help="Adds all features below." value="All"/> <choice label='&Enums' help="Adds enum folders and an example." value="Enums"/> <choice label='&Classes' help="Adds PSv5+ Classes folders and an example." value="Classes"/> <choice label='&DSC Resources' help="Adds DSCResources folders and an example." value="DSCResources"/> <choice label='&Sample Scripts' help="Adds Sample scripts in folders." value="SampleScripts"/> <choice label='&Git ignore' help="Adds project .gitignore." value="git"/> <choice label='Ghe&rkin BDD' help="Adds Gherkin folders" value="Gherkin"/> <choice label='&Unit Tests' help="Adds Tests folders and example with your features." value="UnitTests"/> <choice label='&Quality tests' help="Adds the Module quality verifying Unit tests, help and code coverage." value="ModuleQuality"/> <choice label='&Build' help="Adds Build folders and an scripts." value="Build"/> <choice label='&AppVeyor' help="Adds AppVeyor folders and an example." value="AppVeyor"/> <choice label='Test&Kitchen' help="Adds TestKitchen folders, yaml and an example." value="TestKitchen"/> </parameter> </parameters> <!-- condition='' ${PLASTER_PARAM_ModuleType} SimpleModule CustomModule CompleteModule SimpleModule_NoBuild CompleteModule_NoBuild SharedDscConfig -in @("SimpleModule","CustomModule","CompleteModule","SimpleModule_NoBuild","CompleteModule_NoBuild","SharedDscConfig") ${PLASTER_PARAM_ModuleAuthor} ${PLASTER_PARAM_ModuleName} ${PLASTER_PARAM_ModuleDescription} ${PLASTER_PARAM_ModuleVersion} ${PLASTER_PARAM_License} true false ${PLASTER_PARAM_LicenseType} Apache MIT None ${PLASTER_PARAM_Features} All UnitTests ModuleQuality AppVeyor TestKitchen Gherkin DSCResources Enums Classes SampleScripts git --> <content> <!-- MODULES FOLDER SCAFFOLDING --> <!-- SOURCE MAIN Folder --> <file source='' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}' /> <!-- CLASSES Folder--> <file source='' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Classes' condition='(${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Classes")) -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild")' /> <!-- Enums Folder--> <file source='' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/enums' condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Enums") -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild")' /> <!-- PRIVATE FUNCTIONS Folder--> <file source='' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Private' condition='${PLASTER_PARAM_ModuleType} -ne "SharedDscConfig"' /> <!-- PUBLIC FUNCTIONS Folder --> <file source='' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Public' condition='${PLASTER_PARAM_ModuleType} -ne "SharedDscConfig"' /> <!-- PESTER MAIN FOLDER --> <file source='' destination='${PLASTER_PARAM_ModuleName}/tests' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SimpleModule_NoBuild","CompleteModule_NoBuild","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("UnitTests") -or ${PLASTER_PARAM_Features}.Contains("ModuleQuality") -or ${PLASTER_PARAM_Features}.Contains("TestKitchen")' /> <!-- GHERKIN --> <file source='' destination='${PLASTER_PARAM_ModuleName}/specs/steps' condition='${PLASTER_PARAM_Features}.Contains("Gherkin")' /> <!-- UNIT TESTS Classes Sample Files --> <file source='tests/Unit/Classes/**' destination='${PLASTER_PARAM_ModuleName}/tests/Unit/Classes/' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or (${PLASTER_PARAM_Features}.Contains("UnitTests") -and ${PLASTER_PARAM_Features}.Contains("Classes"))' /> <!-- UNIT TESTS Private Functions Sample Files --> <file source='tests/Unit/Private/**' destination='${PLASTER_PARAM_ModuleName}/tests/Unit/Private/' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","SimpleModule_NoBuild","CompleteModule","CompleteModule_NoBuild") -or (${PLASTER_PARAM_Features}.Contains("All") -or (${PLASTER_PARAM_Features}.Contains("UnitTests") -and ${PLASTER_PARAM_Features}.contains("SampleScripts")))' /> <!-- UNIT TESTS Public Functions Sample Files --> <file source='tests/Unit/Public/**' destination='${PLASTER_PARAM_ModuleName}/tests/Unit/Public/' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","SimpleModule_NoBuild","CompleteModule","CompleteModule_NoBuild") -or (${PLASTER_PARAM_Features}.Contains("All") -or (${PLASTER_PARAM_Features}.Contains("UnitTests") -and ${PLASTER_PARAM_Features}.contains("SampleScripts")))' /> <!-- QUALITY TESTS for Module --> <file source='tests/QA/**' destination='${PLASTER_PARAM_ModuleName}/tests/QA/' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","SimpleModule_NoBuild","CompleteModule","CompleteModule_NoBuild","SharedDscConfig") -or (${PLASTER_PARAM_Features}.contains("ModuleQuality") -or ${PLASTER_PARAM_Features}.contains("All"))' /> <!-- PUBLIC FUNCTION Sample --> <file source='Sampler/Public/Get-Something.ps1' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Public/Get-Something.ps1' condition='${PLASTER_PARAM_ModuleType} -ne "SharedDscConfig" -and (${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("SampleScripts"))' /> <!-- PRIVATE FUNCTION Sample --> <file source='Sampler/Private/Get-PrivateFunction.ps1' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Private/Get-PrivateFunction.ps1' condition='${PLASTER_PARAM_ModuleType} -ne "SharedDscConfig" -and (${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("SampleScripts"))' /> <!-- CLASSES Samples --> <file source='Sampler/Classes/**' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Classes/' condition='${PLASTER_PARAM_Features}.Contains("All") -or (${PLASTER_PARAM_Features}.Contains("Classes") -and ${PLASTER_PARAM_Features}.Contains("SampleScripts")) -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild")' /> <!-- OUTPUT FOLDER --> <file source='' destination='${PLASTER_PARAM_ModuleName}/output' condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","SimpleModule")' /> <!-- REQUIRED MODULES FOLDER --> <file source='' destination='${PLASTER_PARAM_ModuleName}/output/RequiredModules' condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","SimpleModule")' /> <!-- END OF MODULES FOLDER SCAFFOLDING --> <!-- REPOSITORY Files --> <!-- GITIGNORE --> <file source='Sampler/assets/gitignore' destination='${PLASTER_PARAM_ModuleName}/.gitignore' condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("git") -or ${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SimpleModule_NoBuild","CompleteModule_NoBuild","SharedDscConfig")' /> <!-- GITATTRIBUTES --> <file source='Sampler/assets/gitattributes' destination='${PLASTER_PARAM_ModuleName}/.gitattributes' condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("git") -or ${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SimpleModule_NoBuild","CompleteModule_NoBuild","SharedDscConfig")' /> <!-- KITCHEN YAML Sample --> <templateFile source='Sampler/assets/kitchen.yml.template' destination='${PLASTER_PARAM_ModuleName}/.kitchen.yml' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("TestKitchen")' /> <!-- PSDEPLOY Sample --> <templateFile source='Sampler/assets/Deploy.PSDeploy.template' destination='${PLASTER_PARAM_ModuleName}/Deploy.PSDeploy.ps1' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or (${PLASTER_PARAM_Features}.Contains("Build") -and !${PLASTER_PARAM_Features}.Contains("AppVeyor"))' /> <!-- BUILD SCRIPTS --> <!-- BUILD ENTRYPOINT --> <file source='build.ps1' destination='${PLASTER_PARAM_ModuleName}/build.ps1' condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build") -or ${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig")' /> <!-- REQUIRED MODULES MANIFEST --> <file source='RequiredModules.psd1' destination='${PLASTER_PARAM_ModuleName}/RequiredModules.psd1' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build")' /> <!-- RESOLVE DEPENDENCY Script (used in build.ps1) --> <file source='Resolve-Dependency.ps1' destination='${PLASTER_PARAM_ModuleName}/Resolve-Dependency.ps1' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build")' /> <!-- RESOLVE DEPENDENCY Configuration Manifest --> <file source='Resolve-Dependency.psd1' destination='${PLASTER_PARAM_ModuleName}/Resolve-Dependency.psd1' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build")' /> <!-- BUILD YAML CONFIGURATION --> <file source='Sampler/assets/build.yaml' destination='${PLASTER_PARAM_ModuleName}/build.yaml' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build")' /> <!-- EMPTY MODULE BUILDER MANIFEST (waiting for bug fix https://github.com/PoshCode/ModuleBuilder/issues/44) --> <file source='Sampler/Build.psd1' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Build.psd1' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build")' /> <!-- APPVEYOR --> <file source='appveyor.yml' destination='${PLASTER_PARAM_ModuleName}/appveyor.yml' condition='${PLASTER_PARAM_Features}.Contains("AppVeyor")' /> <!-- AZURE PIPELINES --> <file source='azure-pipelines.yml' destination='${PLASTER_PARAM_ModuleName}/azure-pipelines.yml' condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Azure-Pipelines")' /> <!-- END OF BUILD SCRIPTS --> <!-- DSC RESOURCES files and folders --> <!-- DSCResources --> <file source='' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/DSCResources' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("DSCResources")' /> <!-- Examples --> <file source='' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/Examples' /> <!-- DSCResource Sample Files --> <file source='Sampler/DSCResources/**' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/DSCResources/' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or (${PLASTER_PARAM_Features}.Contains("DSCResources") -and ${PLASTER_PARAM_Features}.Contains("SampleScripts"))' /> <!-- END OF DSCResources files and folders --> <!-- MODULE MANIFEST --> <newModuleManifest destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/${PLASTER_PARAM_ModuleName}.psd1' moduleVersion='$PLASTER_PARAM_ModuleVersion' rootModule='${PLASTER_PARAM_ModuleName}.psm1' author='$PLASTER_PARAM_ModuleAuthor' description='$PLASTER_PARAM_ModuleDescription' condition='-not (Test-Path "${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}.psd1")' /> <!-- <templateFile source='media/module.template' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/${PLASTER_PARAM_ModuleName}.psm1' condition='-not (Test-Path "${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/${PLASTER_PARAM_ModuleName}.psm1")' /> --> <!-- LICENSE based on type of license MIT/Apache2/CC...--> <!-- MIT License --> <templateFile source='Sampler/assets/LICENSES/LICENSE.MIT.Template' destination='${PLASTER_PARAM_ModuleName}/LICENSE' condition='${PLASTER_PARAM_License} -eq "true" -and ${PLASTER_PARAM_LicenseType} -eq "MIT"' /> <!-- APACHE License --> <templateFile source='Sampler/assets/LICENSES/LICENSE.Apache.Template' destination='${PLASTER_PARAM_ModuleName}/LICENSE' condition='${PLASTER_PARAM_License} -eq "true" -and ${PLASTER_PARAM_LicenseType} -eq "Apache"' /> <!-- END OF LICENSE based on type of license MIT/Apache2/CC...--> <!-- Add Markup help files --> <templateFile source='Sampler/assets/README.md.template' destination='${PLASTER_PARAM_ModuleName}/README.md' /> <!-- ABOUT MODULE help text file --> <templateFile source='Sampler/assets/about_ModuleName.help.template' destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_SourceDirectory}/en-US/about_${PLASTER_PARAM_ModuleName}.help.txt' /> <!-- VSCODE SETTINGS --> <file source='Sampler/assets/vscode' destination='${PLASTER_PARAM_ModuleName}/.vscode' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild","SimpleBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("vscode")' /> <!-- GITHUB TEMPLATES --> <file source='Sampler/assets/github' destination='${PLASTER_PARAM_ModuleName}/.github' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild","SimpleBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("github")' /> <!-- CONTRIBUTING MD --> <file source='CONTRIBUTING.md' destination='${PLASTER_PARAM_ModuleName}/CONTRIBUTING.md' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild","SimpleBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("git")' /> <!-- CODE OF CONDUCT MD --> <file source='CODE_OF_CONDUCT.md' destination='${PLASTER_PARAM_ModuleName}/CODE_OF_CONDUCT.md' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild","SimpleBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("git")' /> <!-- MARKDOWN LINT --> <file source='Sampler/assets/markdownlint.json' destination='${PLASTER_PARAM_ModuleName}/.markdownlint.json' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild","SimpleBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("vscode")' /> <!-- GITVERSION CONFIG YAML --> <file source='GitVersion.yml' destination='${PLASTER_PARAM_ModuleName}/GitVersion.yml' condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","SimpleBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("git")' /> </content> </plasterManifest> |