Resources/Vanilla/plasterManifest.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?xml version="1.0" encoding="utf-8"?>
<plasterManifest schemaVersion="1.1" templateType="Project"
  xmlns="http://www.microsoft.com/schemas/PowerShell/Plaster/v1">
  <metadata>
    <name>BasicManifestPS</name>
    <id>c95c4daa-7715-4429-839e-158412655abb</id>
    <version>0.12.4</version>
    <title>Catesta - Basic PSModule template</title>
    <description>Scaffolds a new PowerShell module project</description>
    <author>Jake Morrison</author>
    <tags>PowerShell,Template,PowerShell Module</tags>
  </metadata>
  <parameters>
    <parameter name='VAULT' type='text' prompt='NOTVAULT'/>
    <parameter name='ModuleName' type='text' prompt='Enter the name of the module'/>
    <parameter name='Description' type='text' prompt='Enter a description for the module'/>
    <parameter name='Version' type='text' prompt='Enter the version number of the module' default='0.0.1'/>
    <parameter name='FN' type='user-fullname' store='text' prompt='Enter your full name'/>
    <parameter name='VSCode' type='choice' default='0' store='text' prompt='Would you like to add helpful VSCode files for your project?'>
      <choice label='&amp;Yes' help="VSCode files will be added to make editing in VSCode easier." value="Yes"/>
      <choice label='&amp;No' help="VSCode files will not be added." value="No"/>
    </parameter>
    <parameter name='Pester' type='choice' default='0' store='text' prompt='Which version of Pester would you like to use?'>
      <choice label='&amp;5' help="Pester version 5" value="5"/>
      <choice label='&amp;4' help="Pester version 4" value="4"/>
    </parameter>
 
  </parameters>
  <content>
    <message>&#10;&#10;Scaffolding your PowerShell Module...&#10;&#10;&#10;</message>
    <file source='' destination='docs'/>
    <file source='' destination='media'/>
    <file source='' destination='src'/>
    <file source='' destination='src\Archive'/>
    <file source='' destination='src\Artifacts'/>
    <file source='' destination='src\Tests'/>
    <file source='' destination='src\Tests\Infrastructure'/>
    <file source='' destination='src\Tests\Unit'/>
    <file source='' destination='src\Tests\Unit\Public'/>
    <file source='' destination='src\Tests\Unit\Private'/>
    <file source='' destination='src\${PLASTER_PARAM_ModuleName}'/>
    <file source='' destination='src\${PLASTER_PARAM_ModuleName}\Public'/>
    <file source='' destination='src\${PLASTER_PARAM_ModuleName}\Private'/>
 
    <templateFile condition="$PLASTER_PARAM_VSCode -eq 'Yes'" source='..\editor\VSCode\tasks.json' destination='.vscode\tasks.json' />
    <file condition="$PLASTER_PARAM_VSCode -eq 'Yes'" source='..\editor\VSCode\extensions.json' destination='.vscode\extensions.json' />
    <templateFile condition="$PLASTER_PARAM_VSCode -eq 'Yes'" source='..\editor\VSCode\settings.json' destination='.vscode\settings.json' />
 
    <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Module\src\Tests\v4\Unit\PSModule-Module.Tests.ps1' destination='src\Tests\Unit\${PLASTER_PARAM_ModuleName}-Module.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Module\src\Tests\v4\Unit\ExportedFunctions.Tests.ps1' destination='src\Tests\Unit\ExportedFunctions.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Module\src\Tests\v4\Unit\Private\Private-Function.Tests.ps1' destination='src\Tests\Unit\Private\Get-Day.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Module\src\Tests\v4\Unit\Public\Public-Function.Tests.ps1' destination='src\Tests\Unit\Public\Get-HelloWorld.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Module\src\Tests\v4\Infrastructure\SampleInfraTest.Tests.ps1' destination='src\Tests\Infrastructure\SampleInfraTest.Tests.ps1' />
 
    <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Module\src\Tests\v5\Unit\PSModule-Module.Tests.ps1' destination='src\Tests\Unit\${PLASTER_PARAM_ModuleName}-Module.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Module\src\Tests\v5\Unit\ExportedFunctions.Tests.ps1' destination='src\Tests\Unit\ExportedFunctions.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Module\src\Tests\v5\Unit\Private\Private-Function.Tests.ps1' destination='src\Tests\Unit\Private\Get-Day.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Module\src\Tests\v5\Unit\Public\Public-Function.Tests.ps1' destination='src\Tests\Unit\Public\Get-HelloWorld.Tests.ps1' />
    <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Module\src\Tests\v5\Infrastructure\SampleInfraTest.Tests.ps1' destination='src\Tests\Infrastructure\SampleInfraTest.Tests.ps1' />
 
    <templateFile source='..\Module\src\Module\Private\Get-Day.ps1' destination='src\${PLASTER_PARAM_ModuleName}\Private\Get-Day.ps1' />
    <templateFile source='..\Module\src\Module\Public\Get-HelloWorld.ps1' destination='src\${PLASTER_PARAM_ModuleName}\Public\Get-HelloWorld.ps1' />
 
    <templateFile source='..\Module\src\PSModule.build.ps1' destination='src\${PLASTER_PARAM_ModuleName}.build.ps1'/>
    <file source='..\Module\src\PSModule.Settings.ps1' destination='src\${PLASTER_PARAM_ModuleName}.Settings.ps1'/>
    <file source='..\Module\src\PSScriptAnalyzerSettings.psd1' destination='src\PSScriptAnalyzerSettings.psd1'/>
 
    <newModuleManifest destination='src\${PLASTER_PARAM_ModuleName}\${PLASTER_PARAM_ModuleName}.psd1' moduleVersion='$PLASTER_PARAM_Version' rootModule='${PLASTER_PARAM_ModuleName}.psm1' encoding='UTF8-NoBOM' openInEditor="true" author='$PLASTER_PARAM_FN' description='$PLASTER_PARAM_description'/>
    <file source='..\Module\src\Module\Imports.ps1' destination='src\${PLASTER_PARAM_ModuleName}\Imports.ps1'/>
    <file source='..\Module\src\Module\Module.psm1' destination='src\${PLASTER_PARAM_ModuleName}\${PLASTER_PARAM_ModuleName}.psm1' openInEditor="true"/>
 
    <requireModule condition="$PLASTER_PARAM_Pester -eq '4'" name="Pester" minimumVersion="4.7.2" message="Without Pester, you will not be able to run the provided Pester test to validate your module manifest file.`nWithout version 4.5.0, VS Code will not display Pester warnings and errors in the Problems panel."/>
    <requireModule condition="$PLASTER_PARAM_Pester -eq '5'" name="Pester" minimumVersion="5.2.2" message="Without Pester, you will not be able to run the provided Pester test to validate your module manifest file."/>
    <requireModule name="InvokeBuild" minimumVersion="5.8.0" message="Without InvokeBuild, you will not be able to run local builds."/>
    <requireModule name="platyPS" requiredVersion ="0.12.0" message="This template requires platyPS v0.12.0 module to properly generate help."/>
 
    <message>
 
Your new PowerShell module project '$PLASTER_PARAM_ModuleName' has been created.
 
    </message>
 
    <message>
Several Pester tests have been created to validate various components of the module. Add additional tests to the test directory.
You can run the Pester tests in your project by executing the 'test' task. Press Ctrl+P, then type 'task test'.
    </message>
 
  </content>
</plasterManifest>