-
Notifications
You must be signed in to change notification settings - Fork 116
Description
There are parts of the manifest that I haven't been able to figure out yet. I was hoping to get more information on certain portions. I was just noting everything as I was going through and trying to get a good understanding of everything. Figured I might get some feedback and maybe this could be added to the documentation once refined.
I tried to leave questions I had in bold. I think it would be beneficial to have a list of the Nodes and their potential values etc. It would also be nice to have a place for proposed or potential ones as well. I did see one potential issue that I am going to file a bug report for with the Module Manifest.
PlasterManifest
Metadata
id- Unique ID to for the Packagetitle- Name of Package to Show in UIsdescription- Description message for UIsversion- Package versiontags- I am assuming these will be searchable if there is eventually a gallery type store or when searching through your own templates?
Parameters:
- Is the parameters section where you want a User to set a Custom variable? You could add a new type called
Defineor similar and they could so something like the following:
<parameter name='CustomDateFormat' type='define' default="$(([DateTime]::Now).ToString('yyyyMMdd'))" store='true'/>
<parameter name='StaticVariable' type='define' default="NoPromptStaticVariableValue" store='true'/>I am not exactly sure what you had decided on with Code Execution and how that would impact this. If a user needed access to something like a Custom DateTime format, they could create their own variable like above. You could also just define variables without prompts. These could also be defined in a config file, but do you plan to give the ability to define variables in a config file without them needing a prompt
- The possible
typesand/or plannedtypesinput- Prompts user for inputchoice- Prompts user to select 1 choicemulitchoice- Prompts user to select 1 or multiple choices
required- The Parameter is requiredstore- I'm not quite sure yet, I am guessing this has something to do with stored variables in a config file that is not fully implemented yet. I didn't see anything in invokeplaster.ps1 at first glance.prompt- What is prompted to the user. Is this Required? Can it be omitted? If omitted will the user still be prompted with a blank prompt?
Parameter Choice
- The Choices for a
choiceormultichoiceType. These are used with a$host.ui.PromptforChoicedialogue that should work in editors as well. label- Value Shown in Prompt to Userhelp- Small Help Messahe explaining Choicevalue- The Actual Value
Dependencies
id- Potential Dependency IDs based on package metadata IDs
Content
- This section defines the scaffolding to be built.
- Content Elements:
filesource- Source File that will be copied.destination- Destination where the file will be copiedcondition- Condition that must be met for this to be invoked.encoding- File encodingtemplate- Templates will have Plaster Variables that will be replaced.
newModuleManifest- Creates a new Module Manifest for the Project.destination- Module psd1moduleVersion- Package versionrootModule- Module psm1author- Author of the Modulecondition- A little confused on the condition for newModuleManifest.$FileNode.conditionis referenced to define the condition, butnewModuleManifestis its own node and not a FileNode. If you add a condition to the Manifest, it will not respect it. I would need to test if creating a File Node for a Manifest and setting the condition to false would carry over to thenewModuleManifestNode
modify- Modifies Content with options for Conditions.path- Path to file being modifiedencoding- Encoding of the File (Should this be validated?)condition- Condition that must be met for this to be invoked.Replacement- Replaces content via pattern.