PowerTree.psm1
# Define script-level variables $script:ModuleRoot = $PSScriptRoot New-Alias -Name "ptree" -Value "PowerTree" New-Alias -Name "Start-PowerTree" -Value "PowerTree" New-Alias -Name "Edit-PtreeConfig" -Value "Edit-PowerTreeConfig" New-Alias -Name "Edit-Ptree" -Value "Edit-PowerTreeConfig" New-Alias -Name "Edit-PowerTree" -Value "Edit-PowerTreeConfig" # Import classes first to ensure they are available to all functions $ClassFiles = @(Get-ChildItem -Path "$PSScriptRoot\Private\DataModel\Classes.ps1" -ErrorAction SilentlyContinue) foreach ($import in $ClassFiles) { try { . $import.FullName Write-Verbose "Imported class definitions from $($import.FullName)" } catch { Write-Error "Failed to import class definitions from $($import.FullName): $_" } } # Import all remaining private functions (recursively) $Private = @(Get-ChildItem -Path "$PSScriptRoot\Private\*.ps1" -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.FullName -ne "$PSScriptRoot\Private\DataModel\Classes.ps1" }) foreach ($import in $Private) { try { . $import.FullName } catch { Write-Error "Failed to import private function $($import.FullName): $_" } } # Import all public functions $Public = @(Get-ChildItem -Path "$PSScriptRoot\Public\*.ps1" -ErrorAction SilentlyContinue) foreach ($import in $Public) { try { . $import.FullName } catch { Write-Error "Failed to import public function $($import.FullName): $_" } } # Export public functions Export-ModuleMember -Function $Public.BaseName Export-ModuleMember -Function $Public.BaseName -Alias "ptree", "Start-PowerTree", "Edit-PtreeConfig", "Edit-Ptree", "Edit-PowerTree" |