forked from gaelcolas/SampleModule
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplasterManifest.xml
More file actions
299 lines (242 loc) · 15.8 KB
/
plasterManifest.xml
File metadata and controls
299 lines (242 loc) · 15.8 KB
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
<?xml version="1.0" encoding="utf-8"?>
<plasterManifest
schemaVersion="1.0" xmlns="http://www.microsoft.com/schemas/PowerShell/Plaster/v1">
<metadata>
<name>SampleModule</name>
<id>e46ca074-08e9-4a4b-8c87-e927ffb8c98e</id>
<version>0.0.1</version>
<title>Sample Module Template</title>
<description>Sample Module Template with Build 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'
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'
help="Creates a module with complete structure and example file."
value="CompleteModule"/>
<choice label='Simple &Module Without Build'
help="Creates a simple module without the build automation."
value="SimpleModule_NoBuild"/>
<choice label='Complete &Without Build'
help="Creates a module with complete structure and example file, but without Build automation."
value="CompleteModule_NoBuild"/>
<choice label='Shareable &DSC Configuration'
help="Scaffold a Shareable DSC configuration, based on a simple DSC Composite Resource"
value="SharedDscConfig"/>
</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 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 -->
<file source=''
destination='${PLASTER_PARAM_ModuleName}/media'
condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CustomModule","CompleteModule_NoBuild","SharedDscConfig")'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/classes'
condition='(${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Classes")) -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild")'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/enums'
condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Enums") -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild")'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/examples'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/docs'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/private'
condition='${PLASTER_PARAM_ModuleType} -ne "SharedDscConfig"'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/public'
condition='${PLASTER_PARAM_ModuleType} -ne "SharedDscConfig"'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${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")'
/>
<file source='SampleModule/tests/Unit/classes/**'
destination='${PLASTER_PARAM_ModuleName}/${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"))'
/>
<file source='SampleModule/tests/Unit/Private/**'
destination='${PLASTER_PARAM_ModuleName}/${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")))'
/>
<file source='SampleModule/tests/Unit/Public/**'
destination='${PLASTER_PARAM_ModuleName}/${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")))'
/>
<file source='SampleModule/tests/QA/**'
destination='${PLASTER_PARAM_ModuleName}/${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"))'
/>
<!-- MODULES SAMPLE FILES -->
<file source='SampleModule\Public\Get-Something.ps1'
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}\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"))'
/>
<file source='SampleModule\Private\Get-PrivateFunction.ps1'
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}\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"))'
/>
<file source='.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")'
/>
<file source='SampleModule/classes/**'
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/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")'
/>
<file source='.build/**'
destination='${PLASTER_PARAM_ModuleName}/.build/'
condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build")'
/>
<templateFile source='media/.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")'
/>
<templateFile source='Deploy.PSDeploy.ps1'
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"))'
/>
<templateFile source='media/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 -->
<file source=''
destination='${PLASTER_PARAM_ModuleName}/specs/steps'
condition='${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Gherkin") -or ${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild")'
/>
<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")'
/>
<file source='PSDepend.build.psd1'
destination='${PLASTER_PARAM_ModuleName}/PSDepend.build.psd1'
condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("Build")'
/>
<file source='appveyor.yml'
destination='${PLASTER_PARAM_ModuleName}/appveyor.yml'
condition='${PLASTER_PARAM_ModuleType} -in @("SimpleModule","CompleteModule","SharedDscConfig") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("AppVeyor")'
/>
<file source=''
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}\DscResources'
condition='${PLASTER_PARAM_ModuleType} -in @("CompleteModule","CompleteModule_NoBuild") -or ${PLASTER_PARAM_Features}.Contains("All") -or ${PLASTER_PARAM_Features}.Contains("DSCResources")'
/>
<file source='SampleModule\DscResources\**'
destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}\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"))'
/>
<newModuleManifest destination='${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/${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_ModuleName}/${PLASTER_PARAM_ModuleName}.psm1'
condition='-not (Test-Path "${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}/${PLASTER_PARAM_ModuleName}.psm1")'
/>
<!-- Add license based on type of license MIT\Apache2\CC...-->
<templateFile source='media/LICENSES/LICENSE.MIT.Template'
destination='${PLASTER_PARAM_ModuleName}/LICENSE'
condition='${PLASTER_PARAM_License} -eq "true" -and ${PLASTER_PARAM_LicenseType} -eq "MIT"'
/>
<templateFile source='media/LICENSES/LICENSE.Apache.Template'
destination='${PLASTER_PARAM_ModuleName}/LICENSE'
condition='${PLASTER_PARAM_License} -eq "true" -and ${PLASTER_PARAM_LicenseType} -eq "Apache"'
/>
<!-- Add Markup help files -->
<templateFile source='media/README.md.template'
destination='${PLASTER_PARAM_ModuleName}/README.md'
/>
<templateFile source='media/docs/about_SampleModule.md.template'
destination='${PLASTER_PARAM_ModuleName}/docs/about_${PLASTER_PARAM_ModuleName}.md'
/>
</content>
</plasterManifest>