diff --git a/eng/common/scripts/Update-ChangeLog.ps1 b/eng/common/scripts/Update-ChangeLog.ps1 index b56871390..e802ce6f0 100644 --- a/eng/common/scripts/Update-ChangeLog.ps1 +++ b/eng/common/scripts/Update-ChangeLog.ps1 @@ -8,12 +8,11 @@ param ( [Parameter(Mandatory = $true)] [String]$Version, - [Parameter(Mandatory = $true)] [String]$ServiceDirectory, - [Parameter(Mandatory = $true)] [String]$PackageName, [Boolean]$Unreleased = $true, [Boolean]$ReplaceLatestEntryTitle = $false, + [String]$ChangelogPath, [String]$ReleaseDate ) @@ -24,6 +23,11 @@ if ($ReleaseDate -and $Unreleased) { exit 1 } +if (!$PackageName -and !$ChangelogPath) { + LogError "You must pass either the PackageName or ChangelogPath arguument." + exit 1 +} + if ($ReleaseDate) { try { @@ -51,8 +55,19 @@ if ($null -eq [AzureEngSemanticVersion]::ParseVersionString($Version)) exit 1 } -$PkgProperties = Get-PkgProperties -PackageName $PackageName -ServiceDirectory $ServiceDirectory -$ChangeLogEntries = Get-ChangeLogEntries -ChangeLogLocation $PkgProperties.ChangeLogPath +if ([string]::IsNullOrEmpty($ChangelogPath)) +{ + $pkgProperties = Get-PkgProperties -PackageName $PackageName -ServiceDirectory $ServiceDirectory + $ChangelogPath = $pkgProperties.ChangeLogPath +} + +if (!(Test-Path $ChangelogPath)) +{ + LogError "Changelog path [$ChangelogPath] is invalid." + exit 1 +} + +$ChangeLogEntries = Get-ChangeLogEntries -ChangeLogLocation $ChangelogPath if ($ChangeLogEntries.Contains($Version)) { @@ -64,7 +79,7 @@ if ($ChangeLogEntries.Contains($Version)) if ($Unreleased -and ($ChangeLogEntries[$Version].ReleaseStatus -ne $ReleaseStatus)) { - LogWarning "Version [$Version] is already present in change log with a release date. Please review [$($PkgProperties.ChangeLogPath)]. No Change made." + LogWarning "Version [$Version] is already present in change log with a release date. Please review [$ChangelogPath]. No Change made." exit(0) } @@ -72,7 +87,7 @@ if ($ChangeLogEntries.Contains($Version)) { if ((Get-Date ($ChangeLogEntries[$Version].ReleaseStatus).Trim("()")) -gt (Get-Date $ReleaseStatus.Trim("()"))) { - LogWarning "New ReleaseDate for version [$Version] is older than existing release date in changelog. Please review [$($PkgProperties.ChangeLogPath)]. No Change made." + LogWarning "New ReleaseDate for version [$Version] is older than existing release date in changelog. Please review [$ChangelogPath]. No Change made." exit(0) } } @@ -120,4 +135,4 @@ else } } -Set-ChangeLogContent -ChangeLogLocation $PkgProperties.ChangeLogPath -ChangeLogEntries $ChangeLogEntries \ No newline at end of file +Set-ChangeLogContent -ChangeLogLocation $ChangelogPath -ChangeLogEntries $ChangeLogEntries \ No newline at end of file