From 6f493711e91aaeacacbde74a24ed803d23448a66 Mon Sep 17 00:00:00 2001 From: Callidus2000 <73584079+Callidus2000@users.noreply.github.com> Date: Wed, 16 Feb 2022 10:43:39 +0100 Subject: [PATCH 1/5] Seperated Template-Output-Creation from writing to disk --- .../templating/Invoke-PSMDTemplate.ps1 | 154 +++++++++++++++--- 1 file changed, 131 insertions(+), 23 deletions(-) diff --git a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 index 4652ffe..62448bc 100644 --- a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 +++ b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 @@ -1,5 +1,5 @@ function Invoke-PSMDTemplate { -<# + <# .SYNOPSIS Creates a project/file from a template. @@ -49,6 +49,10 @@ By default, all parameters will be replaced during invocation. In Raw mode, this is skipped, reproducing mostly the original template input (dynamic scriptblocks will now be named scriptblocks)). + .PARAMETER GenerateObjects + By default, Invoke-PSMDTemplate generates files. + In GenerateObjects mode, no file but objects are created. + .PARAMETER Force If the target path the template should be written to (filename or folder name within $OutPath), then overwrite it. By default, this function will fail if an overwrite is required. @@ -78,7 +82,7 @@ #> [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSPossibleIncorrectUsageOfAssignmentOperator", "")] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '')] - [Alias('imt')] + [Alias('imt')] [CmdletBinding(SupportsShouldProcess = $true)] param ( [Parameter(Mandatory = $true, Position = 0, ParameterSetName = 'NameStore')] @@ -119,6 +123,9 @@ [switch] $Raw, + [switch] + $GenerateObjects, + [switch] $Force, @@ -175,6 +182,9 @@ [bool] $Raw, + [switch] + $GenerateObjects, + [bool] $Silent ) @@ -215,10 +225,12 @@ switch ($templateData.Type.ToString()) { #region File - "File" - { + "File" { foreach ($child in $templateData.Children) { - Write-TemplateItem -Item $child -Path $OutPath -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw + $createdTemplateItems = New-TemplateItem -Item $child -Path $OutPath -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw + Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" + #Todo: Parameter umstellen + Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding } if ($Raw -and $templateData.Scripts.Values) { $templateData.Scripts.Values | Export-Clixml -Path (Join-Path $OutPath "_PSMD_ParameterScripts.xml") @@ -227,8 +239,7 @@ #endregion File #region Project - "Project" - { + "Project" { #region Resolve output folder if (-not $NoFolder) { if ($Parameters["Name"]) { @@ -247,7 +258,10 @@ #endregion Resolve output folder foreach ($child in $templateData.Children) { - Write-TemplateItem -Item $child -Path $newFolder.FullName -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw + $createdTemplateItems = New-TemplateItem -Item $child -Path $newFolder.FullName -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw + Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" + #Todo: Parameter umstellen + Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding } #region Write Config File (Raw) @@ -287,7 +301,7 @@ } } - function Write-TemplateItem { + function New-TemplateItem { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseShouldProcessForStateChangingFunctions", "")] [CmdletBinding()] param ( @@ -309,8 +323,7 @@ [bool] $Raw ) - - Write-PSFMessage -Level Verbose -Message "Creating file: $($Item.Name) ($($Item.RelativePath))" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' + Write-PSFMessage -Level Verbose -Message "Creating Template-Item: $($Item.Name) ($($Item.RelativePath))" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' $identifier = $Item.Identifier $isFile = $Item.GetType().Name -eq 'TemplateItemFile' @@ -320,7 +333,7 @@ $fileName = $Item.Name if (-not $Raw) { foreach ($param in $Item.FileSystemParameterFlat) { - $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName,"$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) + $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) } foreach ($param in $Item.FileSystemParameterScript) { $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterScript[$param], $false) @@ -338,11 +351,22 @@ $text = [PSModuleDevelopment.Utility.UtilityHost]::Replace($text, "$($identifier)!$($param)!$($identifier)", $ParameterScript[$param], $false) } } - [System.IO.File]::WriteAllText($destPath, $text, $Encoding) + return [TemplateResult]@{ + Filename = $fileName + Path = $Path + FullPath = $destPath + Content = $text + } } else { $bytes = [System.Convert]::FromBase64String($Item.Value) - [System.IO.File]::WriteAllBytes($destPath, $bytes) + return [TemplateResult]@{ + Filename = $fileName + Path = $Path + FullPath = $destPath + Content = $bytes + IsText = $false + } } } #endregion File @@ -358,26 +382,110 @@ $folderName = $folderName -replace "$($identifier)!$([regex]::Escape($param))!$($identifier)", $ParameterScript[$param] } } - $folder = New-Item -Path $Path -Name $folderName -ItemType Directory - + $folder = Join-Path -Path (get-item $Path).FullName -ChildPath $folderName + # $folder = New-Item -Path $Path -Name $folderName -ItemType Directory + $createdTemplateItems = @() foreach ($child in $Item.Children) { - Write-TemplateItem -Item $child -Path $folder.FullName -Encoding $Encoding -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw + $createdTemplateItems += New-TemplateItem -Item $child -Path $folder -Encoding $Encoding -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw } + return $createdTemplateItems } #endregion Folder } + function Write-TemplateResults { + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseShouldProcessForStateChangingFunctions", "")] + [CmdletBinding()] + param ( + [TemplateResult[]] + $TemplateResult, + + [PSFEncoding] + $Encoding + ) + foreach ($item in $TemplateResult) { + Write-PSFMessage -Level Verbose -Message "Creating file: $($Item.FullPath)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' + Write-PSFMessage -Level Verbose -Message "Creating file: $($Item |convertto-json)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' + if (-not (Test-Path $Item.Path)) { + Write-PSFMessage -Level Verbose -Message "Creating Folder $($Item.Path)" + New-Item -Path $Item.Path -ItemType Directory + } + if ($Item.IsText) { + Write-PSFMessage -Level Verbose -Message "Creating as a Text-File" + [System.IO.File]::WriteAllText($Item.FullPath, $Item.Content, $Encoding) + } + else { + Write-PSFMessage -Level Verbose -Message "Creating as a Binary-File" + [System.IO.File]::WriteAllBytes($Item.FullPath, $Item.Content) + } + } + + # $identifier = $Item.Identifier + # $isFile = $Item.GetType().Name -eq 'TemplateItemFile' + + # #region File + # if ($isFile) { + # $fileName = $Item.Name + # if (-not $Raw) { + # foreach ($param in $Item.FileSystemParameterFlat) { + # $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) + # } + # foreach ($param in $Item.FileSystemParameterScript) { + # $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterScript[$param], $false) + # } + # } + # $destPath = Join-Path $Path $fileName + + # if ($Item.PlainText) { + # $text = $Item.Value + # if (-not $Raw) { + # foreach ($param in $Item.ContentParameterFlat) { + # $text = [PSModuleDevelopment.Utility.UtilityHost]::Replace($text, "$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) + # } + # foreach ($param in $Item.ContentParameterScript) { + # $text = [PSModuleDevelopment.Utility.UtilityHost]::Replace($text, "$($identifier)!$($param)!$($identifier)", $ParameterScript[$param], $false) + # } + # } + # [System.IO.File]::WriteAllText($destPath, $text, $Encoding) + # } + # else { + # $bytes = [System.Convert]::FromBase64String($Item.Value) + # [System.IO.File]::WriteAllBytes($destPath, $bytes) + # } + # } + # #endregion File + + # #region Folder + # else { + # $folderName = $Item.Name + # if (-not $Raw) { + # foreach ($param in $Item.FileSystemParameterFlat) { + # $folderName = $folderName -replace "$($identifier)$([regex]::Escape($param))$($identifier)", $ParameterFlat[$param] + # } + # foreach ($param in $Item.FileSystemParameterScript) { + # $folderName = $folderName -replace "$($identifier)!$([regex]::Escape($param))!$($identifier)", $ParameterScript[$param] + # } + # } + # $folder = New-Item -Path $Path -Name $folderName -ItemType Directory + + # foreach ($child in $Item.Children) { + # Write-TemplateResults -Item $child -Path $folder.FullName -Encoding $Encoding -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw + # } + # } + # #endregion Folder + } #endregion Helper function } process { if (Test-PSFFunctionInterrupt) { return } $invokeParam = @{ - Parameters = $Parameters.Clone() - OutPath = Resolve-PSFPath -Path $OutPath - NoFolder = $NoFolder - Encoding = $Encoding - Raw = $Raw - Silent = $Silent + Parameters = $Parameters.Clone() + OutPath = Resolve-PSFPath -Path $OutPath + NoFolder = $NoFolder + Encoding = $Encoding + Raw = $Raw + Silent = $Silent + GenerateObjects = $GenerateObjects } foreach ($item in $Template) { From f07d63cb180f43912e2f426c223460bbb0efa295 Mon Sep 17 00:00:00 2001 From: Callidus2000 <73584079+Callidus2000@users.noreply.github.com> Date: Wed, 16 Feb 2022 12:50:38 +0100 Subject: [PATCH 2/5] Added Class TemplateResult --- PSModuleDevelopment/internal/classes/TemplateResult.ps1 | 7 +++++++ PSModuleDevelopment/internal/scripts/preimport.ps1 | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 PSModuleDevelopment/internal/classes/TemplateResult.ps1 diff --git a/PSModuleDevelopment/internal/classes/TemplateResult.ps1 b/PSModuleDevelopment/internal/classes/TemplateResult.ps1 new file mode 100644 index 0000000..2ca7c27 --- /dev/null +++ b/PSModuleDevelopment/internal/classes/TemplateResult.ps1 @@ -0,0 +1,7 @@ +class TemplateResult { + [string]$Filename + [string]$Path + [string]$FullPath + $Content + [bool]$IsText=$true +} \ No newline at end of file diff --git a/PSModuleDevelopment/internal/scripts/preimport.ps1 b/PSModuleDevelopment/internal/scripts/preimport.ps1 index 6d065ae..c0197f4 100644 --- a/PSModuleDevelopment/internal/scripts/preimport.ps1 +++ b/PSModuleDevelopment/internal/scripts/preimport.ps1 @@ -17,4 +17,10 @@ foreach ($file in (Get-ChildItem "$($script:ModuleRoot)\internal\configurations\ } # Load additional resources needed during import -. Import-ModuleFile -Path "$($script:ModuleRoot)\internal\scripts\initialize.ps1" \ No newline at end of file +. Import-ModuleFile -Path "$($script:ModuleRoot)\internal\scripts\initialize.ps1" + +# Load all classes +foreach ($file in (Get-ChildItem "$($script:ModuleRoot)\internal\classes\*.ps1" -ErrorAction Ignore)) +{ + . Import-ModuleFile -Path $file.FullName +} \ No newline at end of file From d5facb0342690422c46cdf6df8defefa08a4c888 Mon Sep 17 00:00:00 2001 From: Callidus2000 <73584079+Callidus2000@users.noreply.github.com> Date: Wed, 16 Feb 2022 12:51:15 +0100 Subject: [PATCH 3/5] Seperated the templating from writing to the filesystem --- .../templating/Invoke-PSMDTemplate.ps1 | 93 +++++-------------- 1 file changed, 22 insertions(+), 71 deletions(-) diff --git a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 index 62448bc..77c9bdf 100644 --- a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 +++ b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 @@ -222,15 +222,14 @@ } } #endregion Scripts - + $createdTemplateItems=@() switch ($templateData.Type.ToString()) { #region File "File" { foreach ($child in $templateData.Children) { - $createdTemplateItems = New-TemplateItem -Item $child -Path $OutPath -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw - Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" - #Todo: Parameter umstellen - Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding + $createdTemplateItems += New-TemplateItem -Item $child -Path $OutPath -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw + # Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" + # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding } if ($Raw -and $templateData.Scripts.Values) { $templateData.Scripts.Values | Export-Clixml -Path (Join-Path $OutPath "_PSMD_ParameterScripts.xml") @@ -258,10 +257,9 @@ #endregion Resolve output folder foreach ($child in $templateData.Children) { - $createdTemplateItems = New-TemplateItem -Item $child -Path $newFolder.FullName -Encoding $Encoding -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw - Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" - #Todo: Parameter umstellen - Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding + $createdTemplateItems += New-TemplateItem -Item $child -Path $newFolder.FullName -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw + # Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" + # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding } #region Write Config File (Raw) @@ -293,12 +291,22 @@ } $configFile = Join-Path $newFolder.FullName "PSMDTemplate.ps1" - Set-Content -Path $configFile -Value $optionsTemplate -Encoding ([PSFEncoding]'utf-8').Encoding + $createdTemplateItems += [TemplateResult]@{ + Filename = "PSMDTemplate.ps1" + Path = $newFolder.FullName + FullPath = (Join-Path $newFolder.FullName "PSMDTemplate.ps1") + Content = $optionsTemplate + } + # Set-Content -Path $configFile -Value $optionsTemplate -Encoding ([PSFEncoding]'utf-8').Encoding } #endregion Write Config File (Raw) } #endregion Project } + If($GenerateObjects){ + return $createdTemplateItems + } + Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding } function New-TemplateItem { @@ -311,9 +319,6 @@ [string] $Path, - [PSFEncoding] - $Encoding, - [hashtable] $ParameterFlat, @@ -382,11 +387,11 @@ $folderName = $folderName -replace "$($identifier)!$([regex]::Escape($param))!$($identifier)", $ParameterScript[$param] } } - $folder = Join-Path -Path (get-item $Path).FullName -ChildPath $folderName + $folder = Join-Path -Path $Path -ChildPath $folderName # $folder = New-Item -Path $Path -Name $folderName -ItemType Directory $createdTemplateItems = @() foreach ($child in $Item.Children) { - $createdTemplateItems += New-TemplateItem -Item $child -Path $folder -Encoding $Encoding -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw + $createdTemplateItems += New-TemplateItem -Item $child -Path $folder -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw } return $createdTemplateItems } @@ -404,10 +409,10 @@ ) foreach ($item in $TemplateResult) { Write-PSFMessage -Level Verbose -Message "Creating file: $($Item.FullPath)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' - Write-PSFMessage -Level Verbose -Message "Creating file: $($Item |convertto-json)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' + # Write-PSFMessage -Level Verbose -Message "Creating file: $($Item |convertto-json)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' if (-not (Test-Path $Item.Path)) { Write-PSFMessage -Level Verbose -Message "Creating Folder $($Item.Path)" - New-Item -Path $Item.Path -ItemType Directory + $folder=New-Item -Path $Item.Path -ItemType Directory } if ($Item.IsText) { Write-PSFMessage -Level Verbose -Message "Creating as a Text-File" @@ -418,60 +423,6 @@ [System.IO.File]::WriteAllBytes($Item.FullPath, $Item.Content) } } - - # $identifier = $Item.Identifier - # $isFile = $Item.GetType().Name -eq 'TemplateItemFile' - - # #region File - # if ($isFile) { - # $fileName = $Item.Name - # if (-not $Raw) { - # foreach ($param in $Item.FileSystemParameterFlat) { - # $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) - # } - # foreach ($param in $Item.FileSystemParameterScript) { - # $fileName = [PSModuleDevelopment.Utility.UtilityHost]::Replace($fileName, "$($identifier)$($param)$($identifier)", $ParameterScript[$param], $false) - # } - # } - # $destPath = Join-Path $Path $fileName - - # if ($Item.PlainText) { - # $text = $Item.Value - # if (-not $Raw) { - # foreach ($param in $Item.ContentParameterFlat) { - # $text = [PSModuleDevelopment.Utility.UtilityHost]::Replace($text, "$($identifier)$($param)$($identifier)", $ParameterFlat[$param], $false) - # } - # foreach ($param in $Item.ContentParameterScript) { - # $text = [PSModuleDevelopment.Utility.UtilityHost]::Replace($text, "$($identifier)!$($param)!$($identifier)", $ParameterScript[$param], $false) - # } - # } - # [System.IO.File]::WriteAllText($destPath, $text, $Encoding) - # } - # else { - # $bytes = [System.Convert]::FromBase64String($Item.Value) - # [System.IO.File]::WriteAllBytes($destPath, $bytes) - # } - # } - # #endregion File - - # #region Folder - # else { - # $folderName = $Item.Name - # if (-not $Raw) { - # foreach ($param in $Item.FileSystemParameterFlat) { - # $folderName = $folderName -replace "$($identifier)$([regex]::Escape($param))$($identifier)", $ParameterFlat[$param] - # } - # foreach ($param in $Item.FileSystemParameterScript) { - # $folderName = $folderName -replace "$($identifier)!$([regex]::Escape($param))!$($identifier)", $ParameterScript[$param] - # } - # } - # $folder = New-Item -Path $Path -Name $folderName -ItemType Directory - - # foreach ($child in $Item.Children) { - # Write-TemplateResults -Item $child -Path $folder.FullName -Encoding $Encoding -ParameterFlat $ParameterFlat -ParameterScript $ParameterScript -Raw $Raw - # } - # } - # #endregion Folder } #endregion Helper function } From ba0a0d4d5a22718382b535b8cf1ba731a999285c Mon Sep 17 00:00:00 2001 From: Callidus2000 <73584079+Callidus2000@users.noreply.github.com> Date: Wed, 16 Feb 2022 13:44:23 +0100 Subject: [PATCH 4/5] Pester Test Fixes --- .../functions/templating/Invoke-PSMDTemplate.ps1 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 index 77c9bdf..48fad3c 100644 --- a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 +++ b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 @@ -229,7 +229,7 @@ foreach ($child in $templateData.Children) { $createdTemplateItems += New-TemplateItem -Item $child -Path $OutPath -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw # Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" - # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding + # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding } if ($Raw -and $templateData.Scripts.Values) { $templateData.Scripts.Values | Export-Clixml -Path (Join-Path $OutPath "_PSMD_ParameterScripts.xml") @@ -290,7 +290,6 @@ $optionsTemplate = $optionsTemplate -replace "þþþPLACEHOLDER-$($guid)þþþ", "" } - $configFile = Join-Path $newFolder.FullName "PSMDTemplate.ps1" $createdTemplateItems += [TemplateResult]@{ Filename = "PSMDTemplate.ps1" Path = $newFolder.FullName @@ -306,7 +305,7 @@ If($GenerateObjects){ return $createdTemplateItems } - Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding + Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding } function New-TemplateItem { @@ -412,7 +411,7 @@ # Write-PSFMessage -Level Verbose -Message "Creating file: $($Item |convertto-json)" -FunctionName Invoke-PSMDTemplate -ModuleName PSModuleDevelopment -Tag 'create', 'template' if (-not (Test-Path $Item.Path)) { Write-PSFMessage -Level Verbose -Message "Creating Folder $($Item.Path)" - $folder=New-Item -Path $Item.Path -ItemType Directory + New-Item -Path $Item.Path -ItemType Directory | Out-Null } if ($Item.IsText) { Write-PSFMessage -Level Verbose -Message "Creating as a Text-File" From c5a7b465421ed77ce4b001fb662569a56639f65a Mon Sep 17 00:00:00 2001 From: Friedrich Weinmann Date: Tue, 19 Apr 2022 10:08:59 +0200 Subject: [PATCH 5/5] Fixed command name No plural nouns, otherwise PSSA is unhappy --- .../functions/templating/Invoke-PSMDTemplate.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 index 48fad3c..ec72d48 100644 --- a/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 +++ b/PSModuleDevelopment/functions/templating/Invoke-PSMDTemplate.ps1 @@ -229,7 +229,7 @@ foreach ($child in $templateData.Children) { $createdTemplateItems += New-TemplateItem -Item $child -Path $OutPath -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw # Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" - # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding + # Write-TemplateResult -TemplateResult $createdTemplateItems -Encoding $Encoding } if ($Raw -and $templateData.Scripts.Values) { $templateData.Scripts.Values | Export-Clixml -Path (Join-Path $OutPath "_PSMD_ParameterScripts.xml") @@ -259,7 +259,7 @@ foreach ($child in $templateData.Children) { $createdTemplateItems += New-TemplateItem -Item $child -Path $newFolder.FullName -ParameterFlat $Parameters -ParameterScript $scriptParameters -Raw $Raw # Write-PSFMessage "`$createdTemplateItems=$($createdTemplateItems|convertto-json)" - # Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding + # Write-TemplateResult -TemplateResult $createdTemplateItems -Encoding $Encoding } #region Write Config File (Raw) @@ -305,7 +305,7 @@ If($GenerateObjects){ return $createdTemplateItems } - Write-TemplateResults -TemplateResult $createdTemplateItems -Encoding $Encoding + Write-TemplateResult -TemplateResult $createdTemplateItems -Encoding $Encoding } function New-TemplateItem { @@ -396,7 +396,7 @@ } #endregion Folder } - function Write-TemplateResults { + function Write-TemplateResult { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseShouldProcessForStateChangingFunctions", "")] [CmdletBinding()] param ( @@ -449,4 +449,4 @@ } -EnableException $EnableException -PSCmdlet $PSCmdlet -Continue } } -} \ No newline at end of file +}