public/New-UDCookbookApp.ps1
|
function New-UDCookbookApp { [CmdletBinding()] Param() <# .SYNOPSIS Creates a new Cookbook app. .DESCRIPTION Creates a new Cookbook app for PowerShell Universal. #> try { # Get the module root from the module base $Module = Get-Module -Name 'PowerShellUniversal.Apps.Cookbook' if (-not $Module) { throw "PowerShellUniversal.Apps.Cookbook module is not loaded" } $ModuleRoot = $Module.ModuleBase Write-Verbose "Module root: $ModuleRoot" # Load all page scripts $DashboardPath = Join-Path $ModuleRoot -ChildPath 'dashboards\Cookbook' $PagesPath = Join-Path $DashboardPath -ChildPath 'pages' Write-Verbose "Loading pages from: $PagesPath" Get-ChildItem $PagesPath -Recurse -Filter *.ps1 | ForEach-Object { Write-Verbose "Loading page: $($_.FullName)" . $_.FullName } # Execute the main app script and return the app $AppScript = Join-Path $DashboardPath 'Cookbook.ps1' Write-Verbose "Executing app script: $AppScript" if (-not (Test-Path $AppScript)) { throw "App script not found at: $AppScript" } & $AppScript } catch { Write-Error "Failed to create Herd Manager app: $_" throw } } |