From 91bd398703b64a5899d014d3592998fa90b3d50e Mon Sep 17 00:00:00 2001 From: David Eberhardt <44290340+DEberhardt@users.noreply.github.com> Date: Sat, 2 Jul 2022 17:45:18 +0100 Subject: [PATCH] Fixes #131 - no more greedy replace Adding surgical precision to Badge replace. --- BuildHelpers/Public/Set-ShieldsIoBadge.ps1 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BuildHelpers/Public/Set-ShieldsIoBadge.ps1 b/BuildHelpers/Public/Set-ShieldsIoBadge.ps1 index bc07f57..e71b4ee 100644 --- a/BuildHelpers/Public/Set-ShieldsIoBadge.ps1 +++ b/BuildHelpers/Public/Set-ShieldsIoBadge.ps1 @@ -81,7 +81,11 @@ function Set-ShieldsIoBadge { if ($PSCmdlet.ShouldProcess($Path)) { $ReadmeContent = (Get-Content $Path) - $ReadmeContent = $ReadmeContent -replace "!\[$($Subject)\].+\)", "![$($Subject)](https://img.shields.io/badge/$Subject-$Status$Percent-$Color.svg)" + $Pattern = "!\[$($Subject)\].+?\)" + $String = "![$($Subject)](https://img.shields.io/badge/$Subject-$Status$Percent-$Color.svg)" + $ReadmeContent = $ReadmeContent | ForEach-Object { + if ( ([regex]::Matches($_, $Pattern).success) ) { $_ -replace $Pattern, $String } else { $_ } + } $ReadmeContent | Set-Content -Path $Path } }