From e22bb9b412e0a024f5cf268a82c8f20268094943 Mon Sep 17 00:00:00 2001 From: "SmartGit@jig.ch" Date: Thu, 29 Mar 2018 14:14:47 +0200 Subject: [PATCH 1/4] =?UTF-8?q?task=20UpdateCBH:=20Bug=20fixed=20in=20upda?= =?UTF-8?q?ting=20Comment=20Based=20Help=20in=20functions=20to=20point=20t?= =?UTF-8?q?o=20external=20help=20The=20Issue:=20If=20we=20have=20multiple?= =?UTF-8?q?=20<#=20=E2=80=A6=20#>=20Comments=20like=20the=20following=20si?= =?UTF-8?q?tuation,=20then=20everything=20between=20the=20first=20<#=20and?= =?UTF-8?q?=20the=20last=20#>=20was=20replaced=20by=20the=20single=20one?= =?UTF-8?q?=20external=20help=20link:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Function Set-FileContent-Encoded() { <# .SYNOPSIS … #> [CmdletBinding()] Param ( … ) Function ConvertHashtableTo-Object { <# .SYNOPSIS … #> … } } The Fix recognizes multiple Comment Based Help texts <# … #> correctly and replaces only the first one with the link to the external help --- ModuleBuild.build.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ModuleBuild.build.ps1 b/ModuleBuild.build.ps1 index e17315b..b3e472f 100644 --- a/ModuleBuild.build.ps1 +++ b/ModuleBuild.build.ps1 @@ -445,14 +445,14 @@ task UpdateCBH { "@ $ScratchPath = Join-Path $BuildRoot $Script:BuildEnv.ScratchFolder - $CBHPattern = "(?ms)(\<#.*\.SYNOPSIS.*?#>)" + [Regex]$CBHPattern = '(?ms)\<\#(\#(?!\>)|[^#])*\#\>' Get-ChildItem -Path "$($ScratchPath)\$($Script:BuildEnv.PublicFunctionSource)\*.ps1" -File | ForEach-Object { $FormattedOutFile = $_.FullName $FileName = $_.Name Write-Description White "Replacing CBH in file: $($FileName)" -level 2 $FunctionName = $FileName -replace '.ps1', '' $NewExternalHelp = $ExternalHelp -replace '{{LINK}}', ($Script:BuildEnv.ModuleWebsite + "/tree/master/$($Script:BuildEnv.BaseReleaseFolder)/$($Script:BuildEnv.ModuleVersion)/docs/Functions/$($FunctionName).md") - $UpdatedFile = (get-content $FormattedOutFile -raw) -replace $CBHPattern, $NewExternalHelp + $UpdatedFile = $CBHPattern.Replace( (Get-Content $FormattedOutFile -raw), $NewExternalHelp, 1) $UpdatedFile | Out-File -FilePath $FormattedOutFile -force -Encoding $Script:BuildEnv.Encoding } } From 6e61ffe92f83b5891e609fb62e8d26fca198d96b Mon Sep 17 00:00:00 2001 From: Jehoschua Date: Sat, 31 Mar 2018 13:16:06 +0200 Subject: [PATCH 2/4] Small Enhancement: Function Write-Description: $Description can now contain Newlines / multiple Lines, they are properly indented. --- ModuleBuild.build.ps1 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ModuleBuild.build.ps1 b/ModuleBuild.build.ps1 index b3e472f..5a8de8f 100644 --- a/ModuleBuild.build.ps1 +++ b/ModuleBuild.build.ps1 @@ -10,8 +10,8 @@ param ( ) Function Write-Description { - # Basic indented descriptive build output. - param ( + # Basic indented descriptive build output. $Description can contain Newlines. + Param ( [string]$color = 'White', [string]$Description = '', [int]$Level = 0, @@ -22,11 +22,12 @@ Function Write-Description { ) $thisindent = (' ' * $indent) * $level - if ($accent) { + If ($accent) { $accentleft = $AccentL $accentright = $AccentR } - Write-Build $color "$accentleft$thisindent$Description$accentright" + + $Description -split '\r\n|\n' | ForEach-Object { Write-Build $color "$accentleft$thisindent$($_)$accentright" } } if (Test-Path $BuildFile) { From 00aecf264716dd755fe4e069c25c67d4df96d51a Mon Sep 17 00:00:00 2001 From: Jehoschua Date: Sat, 31 Mar 2018 13:16:37 +0200 Subject: [PATCH 3/4] Small Enhancement: Function Write-Description: $Description can now contain Newlines / multiple Lines, they are properly indented. --- plaster/ModuleBuild/scaffold/modulename.build.template | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plaster/ModuleBuild/scaffold/modulename.build.template b/plaster/ModuleBuild/scaffold/modulename.build.template index ee66e79..d595536 100644 --- a/plaster/ModuleBuild/scaffold/modulename.build.template +++ b/plaster/ModuleBuild/scaffold/modulename.build.template @@ -9,9 +9,9 @@ [switch]$Force ) -# Basic indented descriptive build output. Function Write-Description { - param ( + # Basic indented descriptive build output. $Description can contain Newlines. + Param ( [string]$color = 'White', [string]$Description = '', [int]$Level = 0, @@ -22,11 +22,12 @@ Function Write-Description { ) $thisindent = (' ' * $indent) * $level - if ($accent) { + If ($accent) { $accentleft = $AccentL $accentright = $AccentR } - Write-Build $color "$accentleft$thisindent$Description$accentright" + + $Description -split '\r\n|\n' | ForEach-Object { Write-Build $color "$accentleft$thisindent$($_)$accentright" } } if (Test-Path $BuildFile) { From e4e5214d3dea6a12026700521af4cdb3ad8aced0 Mon Sep 17 00:00:00 2001 From: Jehoschua Date: Sat, 31 Mar 2018 13:16:55 +0200 Subject: [PATCH 4/4] Small Enhancement: Function Write-Description: $Description can now contain Newlines / multiple Lines, they are properly indented. --- .../ModuleBuild/scaffold/modulename.build.template | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/release/ModuleBuild/plaster/ModuleBuild/scaffold/modulename.build.template b/release/ModuleBuild/plaster/ModuleBuild/scaffold/modulename.build.template index ee66e79..d595536 100644 --- a/release/ModuleBuild/plaster/ModuleBuild/scaffold/modulename.build.template +++ b/release/ModuleBuild/plaster/ModuleBuild/scaffold/modulename.build.template @@ -9,9 +9,9 @@ [switch]$Force ) -# Basic indented descriptive build output. Function Write-Description { - param ( + # Basic indented descriptive build output. $Description can contain Newlines. + Param ( [string]$color = 'White', [string]$Description = '', [int]$Level = 0, @@ -22,11 +22,12 @@ Function Write-Description { ) $thisindent = (' ' * $indent) * $level - if ($accent) { + If ($accent) { $accentleft = $AccentL $accentright = $AccentR } - Write-Build $color "$accentleft$thisindent$Description$accentright" + + $Description -split '\r\n|\n' | ForEach-Object { Write-Build $color "$accentleft$thisindent$($_)$accentright" } } if (Test-Path $BuildFile) {