pwsh/dev/buildAzGovVizParallel.ps1 (46 lines of code) (raw):

param( [switch] $skipVersionCompare ) $allFunctionLines = foreach ($file in Get-ChildItem -Path .\pwsh\dev\functions -Recurse -Filter *.ps1) { Get-Content -LiteralPath $file.FullName } $functionCode = $allFunctionLines -join "`n" $AzGovVizScriptFile = Get-Content -Path .\pwsh\dev\devAzGovVizParallel.ps1 -Raw $newContent = @" #region Functions $functionCode "@ $startIndex = $AzGovVizScriptFile.IndexOf('#region Functions') $endIndex = $AzGovVizScriptFile.IndexOf('#endregion Functions') $textBefore = $AzGovVizScriptFile.SubString(0, $startIndex) $textAfter = $AzGovVizScriptFile.SubString($endIndex) $textBefore.TrimEnd(), $newContent, $textAfter | Set-Content -Path .\pwsh\AzGovVizParallel.ps1 -Encoding utf8BOM $versionPattern = 'ProductVersion = ' $versiontxt = (Select-String -Path .\pwsh\AzGovVizParallel.ps1 -Pattern $versionPattern) -replace ".*$versionPattern" -replace "'" -replace ',' $versiontxtSplitted = $versiontxt -split '\.' if ($versiontxt.Count -ne 1 -or $versiontxtSplitted.count -ne 3 -or $versiontxtSplitted[0] -notmatch '^\d+$' -or $versiontxtSplitted[1] -notmatch '^\d+$' -or $versiontxtSplitted[2] -notmatch '^\d+$') { Write-Host "version '$versiontxt' unexpected -> expected e.g. 1.0.0" throw } if (-not $skipVersionCompare) { try { $repoVersionJsonUri = 'https://raw.githubusercontent.com/Azure/Azure-Governance-Visualizer/master/version.json' $getRepoVersion = Invoke-WebRequest -Uri $repoVersionJsonUri $repoVersion = ($getRepoVersion.Content | ConvertFrom-Json).ProductVersion } catch { throw "could not get the version from the repo '$repoVersionJsonUri'" } if ($repoVersion -eq $versiontxt) { throw "the given version $versiontxt is equal to the current version on the repository $repoVersion" } if ([System.Version]$versiontxt -lt [System.Version]$repoVersion) { throw "the given productVersion '$versiontxt' is lower than the current version on the repository '$repoVersion'" } } $versionJson = @{ ProductVersion = $versiontxt } ($versionJson | ConvertTo-Json) | Set-Content -NoNewline -Path .\version.json Write-Host "'AzGovVizParallel.ps1' $versiontxt created"