Skip to content

Commit b5b42c0

Browse files
🩹 [Refactor]: Update parameters in Build-PSModule scripts for improved clarity and functionality
1 parent 9ca5440 commit b5b42c0

File tree

3 files changed

+67
-15
lines changed

3 files changed

+67
-15
lines changed

‎scripts/helpers/Build-PSModule.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
Build-PSModuleBase -ModuleName $ModuleName -ModuleSourceFolder $moduleSourceFolder -ModuleOutputFolder $moduleOutputFolder
4545
Build-PSModuleManifest -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder
4646
Build-PSModuleRootModule -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder
47-
Update-PSModuleManifestAliasesToExport -ModuleName $ModuleName -ModuleOutputFolder $moduleOutputFolder
47+
Update-PSModuleManifestAliasesToExport -ModuleName $ModuleName -ModuleSourceFolder $moduleSourceFolder
4848

4949
LogGroup 'Build manifest file - Final Result' {
5050
$outputManifestPath = Join-Path -Path $ModuleOutputFolder -ChildPath "$ModuleName.psd1"

‎scripts/helpers/Build/Build-PSModuleRootModule.ps1

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,11 @@ Export-ModuleMember @exports
256256
Write-Host (Show-FileContent -Path $rootModuleFile)
257257
}
258258

259-
LogGroup 'Build root module - Validate - Import' {
260-
Install-PSModule -Path $ModuleOutputFolder
261-
}
259+
# LogGroup 'Build root module - Validate - Import' {
260+
# Install-PSModule -Path $ModuleOutputFolder
261+
# }
262262

263-
LogGroup 'Build root module - Validate - File list' {
264-
Get-ChildItem -Path $ModuleOutputFolder -Recurse -Force | Resolve-Path -Relative | Sort-Object
265-
}
263+
# LogGroup 'Build root module - Validate - File list' {
264+
# Get-ChildItem -Path $ModuleOutputFolder -Recurse -Force | Resolve-Path -Relative | Sort-Object
265+
# }
266266
}

‎scripts/helpers/Build/Update-PSModuleManifestAliasesToExport.ps1

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,71 @@
2525

2626
# Folder where the module is outputted.
2727
[Parameter(Mandatory)]
28-
[System.IO.DirectoryInfo] $ModuleOutputFolder
28+
[System.IO.DirectoryInfo] $ModuleSourceFolder
2929
)
3030
LogGroup 'Updating aliases to export in module manifest' {
3131
Write-Host "Module name: [$ModuleName]"
32-
Write-Host "Module output folder: [$ModuleOutputFolder]"
33-
$aliases = Get-Command -Module $ModuleName -CommandType Alias
34-
Write-Host "Found aliases: [$($aliases.Count)]"
35-
foreach ($alias in $aliases) {
36-
Write-Host "Alias: [$($alias.Name)]"
32+
Write-Host "Module output folder: [$ModuleSourceFolder]"
33+
34+
$publicFunctionsPath = Join-Path -Path $ModuleSourceFolder -ChildPath 'public/functions'
35+
Write-Host "Public functions path: [$publicFunctionsPath]"
36+
if (-not (Test-Path -Path $publicFunctionsPath)) {
37+
Write-Host "Public functions path does not exist: [$publicFunctionsPath]"
38+
return
39+
}
40+
41+
# Get all child items in the module source folder of a powershell file type
42+
$files = Get-ChildItem -Path $publicFunctionsPath -Recurse -File -Include '*.ps1', '*.psm1' | Select-Object -ExpandProperty Path
43+
44+
# Initialize an array to store all found aliases
45+
$allAliases = @()
46+
47+
foreach ($file in $files) {
48+
Write-Host "Parsing file: [$file]"
49+
50+
# Parse the file using AST
51+
$ast = [System.Management.Automation.Language.Parser]::ParseFile(
52+
$file,
53+
[ref]$null,
54+
[ref]$null
55+
)
56+
57+
# Get all function definitions
58+
$functionAsts = $ast.FindAll(
59+
{
60+
param($node)
61+
$node -is [System.Management.Automation.Language.FunctionDefinitionAst]
62+
}, $false)
63+
64+
Write-Host " Found functions: [$($functionAsts.Count)]"
65+
foreach ($functionAst in $functionAsts) {
66+
# Get the function name
67+
$functionName = $functionAst.Name
68+
Write-Host " Processing: [$functionName]"
69+
70+
$functionAst | ForEach-Object {
71+
$funcName = $_.Name
72+
$funcAttributes = $_.Body.FindAll({ $args[0] -is [System.Management.Automation.Language.AttributeAst] }, $true) | Where-Object {
73+
$_.Parent -is [System.Management.Automation.Language.ParamBlockAst]
74+
}
75+
$aliasAttr = $funcAttributes | Where-Object { $_.TypeName.Name -eq 'Alias' }
76+
77+
if ($aliasAttr) {
78+
$allAliases = $aliasAttr.PositionalArguments | ForEach-Object { $_.ToString().Trim('"', "'") }
79+
Write-Host " Found alias [$allAliases] for function [$funcName]"
80+
$allAliases += $aliases
81+
}
82+
}
83+
}
84+
}
85+
86+
Write-Host "Found aliases: [$($allAliases.Count)]"
87+
foreach ($alias in $allAliases) {
88+
Write-Host " - [$($alias.Name)]"
3789
}
38-
$outputManifestPath = Join-Path -Path $ModuleOutputFolder -ChildPath "$ModuleName.psd1"
90+
$outputManifestPath = Join-Path -Path $ModuleSourceFolder -ChildPath "$ModuleName.psd1"
3991
Write-Host "Output manifest path: [$outputManifestPath]"
4092
Write-Host 'Setting module manifest with AliasesToExport'
41-
Set-ModuleManifest -Path $outputManifestPath -AliasesToExport $aliases.Name -Verbose
93+
Set-ModuleManifest -Path $outputManifestPath -AliasesToExport $allAliases.Name -Verbose
4294
}
4395
}

0 commit comments

Comments
 (0)