CoreePower.Module.UpdateModule.ps1
function UpdateModule { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseApprovedVerbs", "")] [alias("cpum")] param( [string] $Location = "" ) if ($Location -eq "") { $Location = Get-Location } $Location = $Location.TrimEnd([IO.Path]::DirectorySeparatorChar) $manifest = @(Read-Manifests -ManifestLocation "$Location") if ($manifest.Length -ne 1) { Write-Error "Error: None or Multiple PowerShell module manifest files found. Please ensure that there is one .psd1 file specified and try again." return } else{ $manifest = $manifest[0] } if (-not(Test-Path -Path $manifest.Added_RootModule_FullName -PathType Leaf)) { Write-Error "Error: Root module not found. $($manifest.Added_RootModule_FullName)" return } $ver = [Version]$manifest.ModuleVersion $verstring = "$($ver.Major).$($ver.Minor).$($ver.Build+1)" $manifest.ModuleVersion = $verstring $manifest.PrivateData.PSData.LicenseUri = $manifest.PrivateData.PSData.LicenseUri.Replace($ver, $verstring) $params = @{ Path = "$($manifest.Added_PSD_FullName)" RootModule = "$($manifest.RootModule)" ModuleVersion = "$($manifest.ModuleVersion)" GUID = "$($manifest.GUID)" Description = "$($manifest.Description)" Author = "$($manifest.Author)" } if ($manifest.PowerShellVersion) { $params["PowerShellVersion"] = $manifest.PowerShellVersion } if ($manifest.PowerShellHostName) { $params["PowerShellHostName"] = $manifest.PowerShellHostName } if ($manifest.PowerShellHostVersion) { $params["PowerShellHostVersion"] = $manifest.PowerShellHostVersion } if ($manifest.FunctionsToExport) { $params["FunctionsToExport"] = $manifest.FunctionsToExport } if ($manifest.AliasesToExport) { $params["AliasesToExport"] = $manifest.AliasesToExport } if ($manifest.VariablesToExport) { $params["VariablesToExport"] = $manifest.VariablesToExport } if ($manifest.CmdletsToExport) { $params["CmdletsToExport"] = $manifest.CmdletsToExport } if ($manifest.RequiredModules) { $params["RequiredModules"] = $manifest.RequiredModules } if ($manifest.CompanyName) { $params["CompanyName"] = $manifest.CompanyName } if ($manifest.CompatiblePSEditions) { $params["CompatiblePSEditions"] = $manifest.CompatiblePSEditions } if ($manifest.PrivateData.PSData.Tags) { $params["Tags"] = $($manifest.PrivateData.PSData.Tags) } if ($manifest.PrivateData.PSData.ReleaseNotes) { $params["ReleaseNotes"] = "$($manifest.PrivateData.PSData.ReleaseNotes)" } if ($manifest.PrivateData.PSData.Prerelease) { $params["Prerelease"] = "$($manifest.PrivateData.PSData.Prerelease)" } if ($manifest.PrivateData.PSData.RequireLicenseAcceptance) { $params["RequireLicenseAcceptance"] = "$($manifest.PrivateData.PSData.RequireLicenseAcceptance)" } if ($manifest.PrivateData.PSData.LicenseUri) { $params["LicenseUri"] = "$($manifest.PrivateData.PSData.LicenseUri)" } if ($manifest.PrivateData.PSData.IconUri) { $params["IconUri"] = "$($manifest.PrivateData.PSData.IconUri)" } if ($manifest.PrivateData.PSData.ProjectUri) { $params["ProjectUri"] = "$($manifest.PrivateData.PSData.ProjectUri)" } # Wildcard fixes if (-not($params["CmdletsToExport"])) { $params["CmdletsToExport"] = "" } if (-not($params["VariablesToExport"])) { $params["VariablesToExport"] = "" } New-ModuleManifest @params #required for windows powershell direct publishing (Get-Content -path "$($manifest.Added_PSD_FullName)") | Set-Content -Encoding default -Path "$($manifest.Added_PSD_FullName)" Write-Warning "$($manifest.Added_PSD_FullName) version is set to $($manifest.ModuleVersion)" } |