Private/Edit-PSManifestFile.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<#
.SYNOPSIS Updates all '.psd1' files in a directory using the in the specified [Manifest] object. .PARAMETER $Manifest The [Manifest] object. .PARAMETER Path The project directory. #> function Edit-PSManifestFile { Param( [Parameter(Mandatory, ValueFromPipeline)] $Manifest, [string]$Path ) $modifiedFiles = [System.Collections.ArrayList]::new(); foreach ($file in (Get-ChildItem $Path -Recurse -Filter "*.psd1" | Select-Object -ExpandProperty FullName)) { if ($PSCmdlet.ShouldProcess($file)) { Update-ModuleManifest $file ` -ModuleVersion ($Manifest | Convert-NcrementVersionNumberToString) ` -Author ($Manifest.Author | Get-IfNull $env:USERNAME) ` -CompanyName ($Manifest.Company | Get-IfNull $env:USERNAME) ` -Description ($Manifest.Description | Get-IfNull $null) ` -Copyright ($Manifest.Copyright | Get-IfNull $null) ` -ProjectUri ($Manifest.Website | Get-IfNull $null) ` -LicenseUri ($Manifest.License | Get-IfNull $null) ` -IconUri ($Manifest.Icon | Get-IfNull $null) ` -ReleaseNotes ($Manifest.ReleaseNotes | Get-IfNull $null) ` -Tags (($Manifest.Tags | Get-IfNull $null).Split(' ')); } $modifiedFiles.Add($file) | Out-Null; } return $modifiedFiles; } function Get-IfNull { Param( [Parameter(ValueFromPipeline)] [string]$value, [Parameter(Position=0)] $fallback ) if ([string]::IsNullOrEmpty($value)) { return $fallback; } else { return $value; } } |