From c1052cbe2c3203f238404242c4443b91da4bad26 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 15 Apr 2024 21:06:16 +0200 Subject: [PATCH 1/4] Get info about loaded aliases after build --- scripts/helpers/Build-PSModule.ps1 | 1 + .../helpers/Build/Update-PSModuleAliases.ps1 | 17 +++++++++++++++++ tests/src/public/New-PSModuleTest.ps1 | 8 ++++++++ 3 files changed, 26 insertions(+) create mode 100644 scripts/helpers/Build/Update-PSModuleAliases.ps1 diff --git a/scripts/helpers/Build-PSModule.ps1 b/scripts/helpers/Build-PSModule.ps1 index 64775ca..77b0f1e 100644 --- a/scripts/helpers/Build-PSModule.ps1 +++ b/scripts/helpers/Build-PSModule.ps1 @@ -45,5 +45,6 @@ function Build-PSModule { Build-PSModuleBase -ModuleName $ModuleName -ModuleSourceFolder $moduleSourceFolder -ModuleOutputFolder $moduleOutputFolder Build-PSModuleManifest -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder Build-PSModuleRootModule -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder + Update-PSModuleAliases -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder Build-PSModuleDocumentation -ModuleName $ModuleName -DocsOutputFolder $docsOutputFolder } diff --git a/scripts/helpers/Build/Update-PSModuleAliases.ps1 b/scripts/helpers/Build/Update-PSModuleAliases.ps1 new file mode 100644 index 0000000..a7bcb34 --- /dev/null +++ b/scripts/helpers/Build/Update-PSModuleAliases.ps1 @@ -0,0 +1,17 @@ +function Update-PSModuleAliases { + [CmdletBinding()] + param( + # Name of the module. + [Parameter(Mandatory)] + [string] $ModuleName, + + # Folder where the module is outputted. + [Parameter(Mandatory)] + [System.IO.DirectoryInfo] $ModuleOutputFolder + ) + + Write-Verbose "Updating aliases for module [$ModuleName]" + Write-Verbose "Module output folder: [$ModuleOutputFolder]" + + Get-Alias | Select * +} diff --git a/tests/src/public/New-PSModuleTest.ps1 b/tests/src/public/New-PSModuleTest.ps1 index d97e8f3..d4e6e26 100644 --- a/tests/src/public/New-PSModuleTest.ps1 +++ b/tests/src/public/New-PSModuleTest.ps1 @@ -19,6 +19,8 @@ function New-PSModuleTest { 'PSUseShouldProcessForStateChangingFunctions', '', Scope = 'Function', Justification = 'Reason for suppressing' )] + [Alias('New-PSModuleTestAlias1')] + [Alias('New-PSModuleTestAlias2')] [CmdletBinding()] param ( # Name of the person to greet. @@ -27,3 +29,9 @@ function New-PSModuleTest { ) Write-Output "Hello, $Name!" } + +New-Alias New-PSModuleTestAlias3 New-PSModuleTest +New-Alias -Name New-PSModuleTestAlias4 -Value New-PSModuleTest + + +Set-Alias New-PSModuleTestAlias5 New-PSModuleTest From c5dfd69a28aa5af115e531aa243f43de71b05b89 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 15 Apr 2024 21:16:27 +0200 Subject: [PATCH 2/4] Test getting all aliases --- scripts/helpers/Build/Update-PSModuleAliases.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/helpers/Build/Update-PSModuleAliases.ps1 b/scripts/helpers/Build/Update-PSModuleAliases.ps1 index a7bcb34..608bcde 100644 --- a/scripts/helpers/Build/Update-PSModuleAliases.ps1 +++ b/scripts/helpers/Build/Update-PSModuleAliases.ps1 @@ -13,5 +13,8 @@ function Update-PSModuleAliases { Write-Verbose "Updating aliases for module [$ModuleName]" Write-Verbose "Module output folder: [$ModuleOutputFolder]" - Get-Alias | Select * + $aliases = Get-Command -Module $ModuleName -CommandType Alias + Write-Verbose ($aliases | Out-String) + Write-Verbose ($aliases.Name | Out-String) + } From e3858879983eefa02446922c8fe0d6003bb39da9 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 15 Apr 2024 21:26:55 +0200 Subject: [PATCH 3/4] Store and show aliases in module manifest --- scripts/helpers/Build-PSModule.ps1 | 5 +++++ scripts/helpers/Build/Update-PSModuleAliases.ps1 | 2 ++ 2 files changed, 7 insertions(+) diff --git a/scripts/helpers/Build-PSModule.ps1 b/scripts/helpers/Build-PSModule.ps1 index 77b0f1e..ba97044 100644 --- a/scripts/helpers/Build-PSModule.ps1 +++ b/scripts/helpers/Build-PSModule.ps1 @@ -47,4 +47,9 @@ function Build-PSModule { Build-PSModuleRootModule -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder Update-PSModuleAliases -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder Build-PSModuleDocumentation -ModuleName $ModuleName -DocsOutputFolder $docsOutputFolder + + $outputManifestPath = Join-Path -Path $ModuleOutputFolder -ChildPath "$ModuleName.psd1" + Start-LogGroup 'Build manifest file - Final Result' + Show-FileContent -Path $outputManifestPath + Stop-LogGroup } diff --git a/scripts/helpers/Build/Update-PSModuleAliases.ps1 b/scripts/helpers/Build/Update-PSModuleAliases.ps1 index 608bcde..de6dbdf 100644 --- a/scripts/helpers/Build/Update-PSModuleAliases.ps1 +++ b/scripts/helpers/Build/Update-PSModuleAliases.ps1 @@ -17,4 +17,6 @@ function Update-PSModuleAliases { Write-Verbose ($aliases | Out-String) Write-Verbose ($aliases.Name | Out-String) + $outputManifestPath = Join-Path -Path $ModuleOutputFolder -ChildPath "$ModuleName.psd1" + Set-ModuleManifest -Path $outputManifestPath -AliasesToExport $aliases.Name -Verbose:$false } From 3e2119c6ae5a6744d79d8ef18d2e10f7a697fc00 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 15 Apr 2024 21:36:06 +0200 Subject: [PATCH 4/4] Cleanup --- scripts/helpers/Build-PSModule.ps1 | 2 +- ...> Update-PSModuleManifestAliasesToExport.ps1} | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) rename scripts/helpers/Build/{Update-PSModuleAliases.ps1 => Update-PSModuleManifestAliasesToExport.ps1} (59%) diff --git a/scripts/helpers/Build-PSModule.ps1 b/scripts/helpers/Build-PSModule.ps1 index ba97044..223c076 100644 --- a/scripts/helpers/Build-PSModule.ps1 +++ b/scripts/helpers/Build-PSModule.ps1 @@ -45,7 +45,7 @@ function Build-PSModule { Build-PSModuleBase -ModuleName $ModuleName -ModuleSourceFolder $moduleSourceFolder -ModuleOutputFolder $moduleOutputFolder Build-PSModuleManifest -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder Build-PSModuleRootModule -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder - Update-PSModuleAliases -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder + Update-PSModuleManifestAliasesToExport -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder Build-PSModuleDocumentation -ModuleName $ModuleName -DocsOutputFolder $docsOutputFolder $outputManifestPath = Join-Path -Path $ModuleOutputFolder -ChildPath "$ModuleName.psd1" diff --git a/scripts/helpers/Build/Update-PSModuleAliases.ps1 b/scripts/helpers/Build/Update-PSModuleManifestAliasesToExport.ps1 similarity index 59% rename from scripts/helpers/Build/Update-PSModuleAliases.ps1 rename to scripts/helpers/Build/Update-PSModuleManifestAliasesToExport.ps1 index de6dbdf..37cd9bd 100644 --- a/scripts/helpers/Build/Update-PSModuleAliases.ps1 +++ b/scripts/helpers/Build/Update-PSModuleManifestAliasesToExport.ps1 @@ -1,4 +1,12 @@ -function Update-PSModuleAliases { +function Update-PSModuleManifestAliasesToExport { + <# + .SYNOPSIS + Updates the aliases to export in the module manifest. + #> + [Diagnostics.CodeAnalysis.SuppressMessageAttribute( + 'PSUseShouldProcessForStateChangingFunctions', '', Scope = 'Function', + Justification = 'Updates a file that is being built.' + )] [CmdletBinding()] param( # Name of the module. @@ -10,13 +18,7 @@ function Update-PSModuleAliases { [System.IO.DirectoryInfo] $ModuleOutputFolder ) - Write-Verbose "Updating aliases for module [$ModuleName]" - Write-Verbose "Module output folder: [$ModuleOutputFolder]" - $aliases = Get-Command -Module $ModuleName -CommandType Alias - Write-Verbose ($aliases | Out-String) - Write-Verbose ($aliases.Name | Out-String) - $outputManifestPath = Join-Path -Path $ModuleOutputFolder -ChildPath "$ModuleName.psd1" Set-ModuleManifest -Path $outputManifestPath -AliasesToExport $aliases.Name -Verbose:$false }