PSModuleBuild.psm1
Function CreateUpdateManifest { [CmdletBinding()] Param ( [hashtable]$Manifest, [string]$OldManifestPath ) If (Test-Path $OldManifestPath) { $OldManifest = Import-LocalizedData -BaseDirectory (Split-Path $OldManifestPath) -FileName (Split-Path $OldManifestPath -Leaf) If ([version]$OldManifest.PowerShellVersion -gt $HighVersion) { $HighVersion = [version]$OldManifest.PowerShellVersion } If ($Manifest.PowerShellVersion -gt $HighVersion) { $HighVersion = $Manifest.PowerShellVersion } $Manifest.ReleaseNotes = $ReleaseNotes + $OldManifest.PrivateData.PSData.ReleaseNotes $Manifest.Path = $OldManifestPath $Manifest.PowerShellVersion = $HighVersion $Manifest.FunctionsToExport = $FunctionNames | Where Private -eq $false | Select -ExpandProperty Name If (-not $Manifest.ModuleVersion) { $VersionNum = [ordered]@{} $VersionFields = "Major","Minor","Build","Revision" $Count = 0 ForEach ($VersionField in $VersionFields) { $VersionNum.Add($VersionField,$Count) $Count ++ } Try { $OldModuleVersion = [version]$OldManifest.ModuleVersion } Catch {} If ($OldModuleVersion -is [version]) { $Versions = @() ForEach ($Num in (0..3)) { $VF = $VersionFields[$Num] If ($OldModuleVersion.$VF -lt 0 -and $VersionNum[$IncrementVersion] -gt $VersionNum[$Num]) { $Versions += 0 } ElseIf ($OldModuleVersion.$VF -lt 0 -and $IncrementVersion -eq $VF) { $Versions += 1 } ElseIf ($OldModuleVersion.$VF -ge 0) { If ($VF -eq $IncrementVersion) { $Versions += $OldModuleVersion.$VF + 1 } Else { $Versions += $OldModuleVersion.$VF } } } If ($IncrementVersion -eq "Last") { $Versions[-1] ++ } $Manifest.ModuleVersion = $Versions -join "." } } Update-ModuleManifest @Manifest } Else { $Manifest.RootModule = $ModuleName $Manifest.Path = $OldManifestPath $Manifest.PowerShellVersion = "$($HighVersion.Major).$($HighVersion.Minor)" $Manifest.FunctionsToExport = $FunctionNames | Where Private -eq $false | Select -ExpandProperty Name If ($ReleaseNotes) { $Manifest.ReleaseNotes = $ReleaseNotes | Out-String } New-ModuleManifest @Manifest } Return $Manifest } |