Public/Add-PsmData.ps1
function Add-PsmData { <# .Synopsis A function that creates a data file in the module's Data/ folder .DESCRIPTION A function that creates a data file in the module's Data/ folder .EXAMPLE Add-PsmData "package.json" #creates empty file Add-PsmData "package.json" $jsonString #creates file with $jsonString as the content Add-PsmData "package.json" -Whatif #> [CmdletBinding(SupportsShouldProcess=$true)] param( [Parameter( Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [string]$dataName, [Parameter( Mandatory=$false, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [string]$data ) BEGIN{ Write-Verbose "Starting Add-PsmData..." Confirm-IsInitializedModulePath $packageXml = Import-CliXml .\module-psd1.xml }#begin PROCESS{ if ($psCmdlet.ShouldProcess(<# on target --> #>"$($packageXml.RootModule)", <# What if: Performing operation --> #>"Adding new data file $dataName")) { if (Test-Path -Path .\Data -PathType Container) { $data | Set-Content .\Data\$dataName -Force Write-Verbose ".\Data\$dataName file written" } else { throw "No .\Data folder found, this is not an initialized module folder... Run: ``Initialize-Psm``" } } }#process END{ Write-Verbose "Finished Add-PsmData..." }#end } |