Ressources/FRPSUGModuleTemplate/plasterManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<plasterManifest schemaVersion="1.1" templateType="Project" xmlns="http://www.microsoft.com/schemas/PowerShell/Plaster/v1"> <metadata> <name>FRPSUG-ModuleTemplate</name> <id>430104ca-eec4-4602-bb82-83a786ee5d5b</id> <version>0.0.1</version> <title>Full Module Template For FRPSUG</title> <description>Full Module Template For FRPSUG</description> <author>Laurent LIENHARD</author> <tags>Module, Complete, FRPSUG</tags> </metadata> <parameters> <parameter name='ModuleName' type='text' prompt='`r`nEnter the name of the module' /> <parameter name='ModuleDescription' type='text' prompt='`r`nEnter a description of the module (required for publishing to the PowerShell Gallery)' /> <parameter name='AuthorName' type='user-fullname' prompt='`r`nEnter your full name' /> <parameter name='AuthorEmail' type='user-email' prompt='`r`nEnter your email address' /> <parameter name='ModuleVersion' type='text' prompt='`r`nEnter the version number for the module' default='0.0.1' /> <parameter name='Company' type='text' prompt='`r`nEnter the company name' default='None' /> <parameter name='ModuleFolders' type = 'multichoice' prompt='`r`nPlease select folders to include' default='0,1,2'> <choice label='&Functions' value='functions' help='Adds a function folder to module'/> <choice label='&Classes' value='Classes' help='Adds a Classes folder to module'/> <choice label='&Enums' value='Enums' help='Adds a Enums folder to module'/> </parameter> <parameter name='UnitTests' type = 'choice' prompt='`r`nAdd UnitTests Folder' default='0'> <choice label='&Yes' value='Yes' help='Add UnitTests Folder.'/> <choice label='&No' value='No' help='No UnitTests support'/> </parameter> <parameter name='Editor' type='choice' default='1' store='text' prompt='`r`nWhich editor do you use'> <choice label='&ISE' help='Your editor is PowerShell ISE.' value='ISE'/> <choice label='Visual Studio &Code' help='Your editor is Visual Studio Code.' value='VSCode'/> <choice label='&None' help='No editor specified.' value='None'/> </parameter> <parameter name='Github' type = 'choice' prompt='`r`nAdd support for Github' default='0'> <choice label='&Yes' value='Yes' help='Add Github Folder.'/> <choice label='&No' value='No' help='No Github support'/> </parameter> <parameter name='CICD' type = 'choice' prompt='`r`nAdd support for CI/CD' default='0'> <choice label='&Yes' value='Yes' help='Add CI/CD Support.'/> <choice label='&No' value='No' help='No CI/CD support'/> </parameter> <parameter name='Psake' type = 'choice' prompt='`r`nAdd support for Psake' default='0'> <choice label='&Yes' value='Yes' help='Add Psake Support.'/> <choice label='&No' value='No' help='No Psake support'/> </parameter> </parameters> <content> <message>____________________________________</message> <message>`r`n-> Creating your root folders for module : ${PLASTER_PARAM_ModuleName}</message> <message>____________________________________</message> <file source='' destination='${PLASTER_PARAM_ModuleName}' /> <message>`r`n-> Creating module manifest</message> <newModuleManifest destination='$PLASTER_PARAM_ModuleName\${PLASTER_PARAM_ModuleName}.psd1' moduleVersion='$PLASTER_PARAM_ModuleVersion' rootModule='.\${PLASTER_PARAM_ModuleName}.psm1' author='$PLASTER_PARAM_AuthorName' companyName='${PLASTER_PARAM_Company}' description='$PLASTER_PARAM_ModuleDescription' encoding='UTF8-NoBOM'/> <message>`r`n-> Creating your source code folders </message> <file source='' destination='${PLASTER_PARAM_ModuleName}\Sources\Functions\Private' condition='$PLASTER_PARAM_ModuleFolders -contains "functions"' /> <file source='' destination='${PLASTER_PARAM_ModuleName}\Sources\Functions\Public' condition='$PLASTER_PARAM_ModuleFolders -contains "functions"'/> <file source='' destination='${PLASTER_PARAM_ModuleName}\Sources\Classes' condition='$PLASTER_PARAM_ModuleFolders -contains "Classes"' /> <file source='' destination='${PLASTER_PARAM_ModuleName}\Sources\Enums' condition='$PLASTER_PARAM_ModuleFolders -contains "Enums"' /> <file source='' destination='${PLASTER_PARAM_ModuleName}\Tests' /> <file source='' destination='${PLASTER_PARAM_ModuleName}\Docs' /> <message condition='$PLASTER_PARAM_UnitTests -eq "Yes"'>`r`n-> Creating UnitTests folder</message> <file source='' destination='${PLASTER_PARAM_ModuleName}\UnitTests' condition='$PLASTER_PARAM_UnitTests -eq "Yes"' /> <message condition='$PLASTER_PARAM_UnitTests -eq "Yes"'>`r`n-> Copying UnitTests files</message> <templateFile source='UnitTests\*.Tests.ps1' destination='${PLASTER_PARAM_ModuleName}\UnitTests\' condition='$PLASTER_PARAM_UnitTests -eq "Yes"'/> <message condition='$PLASTER_PARAM_Editor -eq "VSCode"'>`r`n-> Creating VSCode folder</message> <file source='' destination='.vscode' condition='$PLASTER_PARAM_Editor -eq "VSCode"' /> <message condition='$PLASTER_PARAM_Editor -eq "VSCode"'>`r`n-> Creating VSCode files</message> <file source='vscode\settings.json' destination='${PLASTER_PARAM_ModuleName}\.vscode\settings.json' condition='$PLASTER_PARAM_Editor -eq "VSCode"' /> <file source='vscode\launch.json' destination='${PLASTER_PARAM_ModuleName}\.vscode\launch.json' condition='$PLASTER_PARAM_Editor -eq "VSCode"' /> <file source='vscode\PSScriptAnalyzerSettings.psd1' destination='${PLASTER_PARAM_ModuleName}\.vscode\PSScriptAnalyzerSettings.psd1' condition='$PLASTER_PARAM_Editor -eq "VSCode"' /> <templateFile source='vscode\tasks.json' destination='${PLASTER_PARAM_ModuleName}\.vscode\tasks.json' condition='($PLASTER_PARAM_Editor -eq "VSCode")' /> <message condition='$PLASTER_PARAM_Github -eq "Yes"'>`r`n-> Creating Github Ressources</message> <templateFile source='github\template.gitignore' destination='${PLASTER_PARAM_ModuleName}\.gitignore' condition='$PLASTER_PARAM_Github -eq "Yes"'/> <message condition='$PLASTER_PARAM_CICD -eq "Yes"'>`r`n-> Creating CI/CD folders</message> <file source='' destination='${PLASTER_PARAM_ModuleName}\CI' condition='$PLASTER_PARAM_CICD -eq "Yes"' /> <file source='' destination='${PLASTER_PARAM_ModuleName}\CI\Deploy' condition='$PLASTER_PARAM_CICD -eq "Yes"' /> <message condition='$PLASTER_PARAM_CICD -eq "Yes"'>`r`n-> Creating CI/CD files</message> <templateFile source='CI\template.Install.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Install.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='CI\template.Clean.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Clean.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='CI\template.Compile.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Compile.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='CI\template.Tests.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Tests.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='CI\template.Diagram.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Diagram.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='CI\template.Docs.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Docs.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='vscode\tasks_CICD.json' destination='${PLASTER_PARAM_ModuleName}\.vscode\tasks.json' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='CI\Deploy\template.PSDeploy.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Deploy\${PLASTER_PARAM_ModuleName}.PSDeploy.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <templateFile source='CI\template.Deploy.ps1' destination='${PLASTER_PARAM_ModuleName}\CI\Deploy.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes"'/> <message condition='$PLASTER_PARAM_CICD -eq "No" -and $PLASTER_PARAM_Psake -eq "Yes" '>`r`n-> Psake tasks can't be create without CICD file</message> <message condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '>`r`n-> Creating Psake folders</message> <file source='' destination='${PLASTER_PARAM_ModuleName}\Tasks' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes"' /> <message condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '>`r`n-> Creating Psake tasks files ...</message> <templateFile source='vscode\tasks_psake.json' destination='${PLASTER_PARAM_ModuleName}\.vscode\tasks.json' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\${PLASTER_PARAM_ModuleName}.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Install.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\Install.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Clean.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\Clean.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Compile.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\Compile.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Deploy.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\Deploy.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Docs.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\Docs.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Tests.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\Tests.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <templateFile source='Tasks\template.Diagram.Tasks.ps1' destination='${PLASTER_PARAM_ModuleName}\Tasks\Diagram.Tasks.ps1' condition='$PLASTER_PARAM_CICD -eq "Yes" -and $PLASTER_PARAM_Psake -eq "Yes" '/> <message>`r`n-> Testing require modules </message> <requireModule name='Pester' condition='$PLASTER_PARAM_UnitTests -eq "Yes"' minimumVersion='4.7.1' message='Without Pester, you will not be able to run the provided Pester test to validate your module manifest file.`nWithout version 3.4.0, VS Code will not display Pester warnings and errors in the Problems panel.'/> <requireModule name='psake' condition='$PLASTER_PARAM_Psake -eq "Yes"' minimumVersion='4.7.4' message='Without psake, you will not be able to run the provided build script to build and/or publish your module.'/> <requireModule name='PSScriptAnalyzer' condition='$PLASTER_PARAM_Editor -eq "VSCode"' minimumVersion='1.17.1' message="Without PSScriptAnalyzer, you will not be able to perform script analysis, or use the provided options to control script analysis."/> <requireModule name='PSdeploy' condition='$PLASTER_PARAM_CICD -eq "Yes"' minimumVersion='1.0.1' message='Without PSDeploy, you will not be able to automatically deploy your module.'/> <requireModule name='PSClassUtils' condition='$PLASTER_PARAM_CICD -eq "Yes"' minimumVersion='2.6.1' message='Without PSClassUtils, you will not be able to run the provided build script to build and/or publish your module.'/> <requireModule name='PlatyPS' condition='$PLASTER_PARAM_CICD -eq "Yes"' minimumVersion='0.12.0' message='Without PlatyPS, you will not be able to generate the documentation automatically.'/> </content> </plasterManifest> |