diff --git a/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 b/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 index 70badd8..ed02432 100644 --- a/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 +++ b/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 @@ -39,10 +39,31 @@ $scriptList = @( "Install-StoreApps.ps1", "Install-UserApps.ps1" ) -# Check if each script exists and run it if it does +# Check if each script exists and has content to process, then run it foreach ($script in $scriptList) { $scriptFile = Join-Path -Path $scriptPath -ChildPath $script - if (Test-Path -Path $scriptFile) { + if (-not (Test-Path -Path $scriptFile)) { + continue + } + + $shouldRun = $true # Default to run if script exists + switch ($script) { + "Install-Win32Apps.ps1" { + $wingetAppsJsonFile = Join-Path -Path $scriptPath -ChildPath "WinGetWin32Apps.json" + $userAppsJsonFile = Join-Path -Path (Split-Path -Parent $scriptPath) -ChildPath "UserAppList.json" + if (-not (Test-Path -Path $wingetAppsJsonFile) -and -not (Test-Path -Path $userAppsJsonFile)) { + $shouldRun = $false + } + } + "Install-StoreApps.ps1" { + $msStorePath = "D:\MSStore" + if (-not (Test-Path -Path $msStorePath) -or -not (Get-ChildItem -Path $msStorePath)) { + $shouldRun = $false + } + } + } + + if ($shouldRun) { Write-Host "`n" # Add a newline for spacing Write-Host "---------------------------------------------------" -ForegroundColor Yellow Write-Host " Running script: $script " -ForegroundColor Yellow diff --git a/FFUDevelopment/BuildFFUVM_UI.xaml b/FFUDevelopment/BuildFFUVM_UI.xaml index 8e10d0e..fecf2b0 100644 --- a/FFUDevelopment/BuildFFUVM_UI.xaml +++ b/FFUDevelopment/BuildFFUVM_UI.xaml @@ -356,7 +356,7 @@ - + diff --git a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Applications.psm1 b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Applications.psm1 index 2582cc7..02f25cf 100644 --- a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Applications.psm1 +++ b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Applications.psm1 @@ -52,8 +52,8 @@ function Add-BYOApplication { $arguments = $State.Controls.txtAppArguments.Text $source = $State.Controls.txtAppSource.Text - if ([string]::IsNullOrWhiteSpace($name) -or [string]::IsNullOrWhiteSpace($commandLine) -or [string]::IsNullOrWhiteSpace($arguments)) { - [System.Windows.MessageBox]::Show("Please fill in all fields (Name, Command Line, and Arguments)", "Missing Information", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) + if ([string]::IsNullOrWhiteSpace($name) -or [string]::IsNullOrWhiteSpace($commandLine)) { + [System.Windows.MessageBox]::Show("Please fill in all fields (Name and Command Line)", "Missing Information", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) return } $listView = $State.Controls.lstApplications @@ -150,8 +150,8 @@ function Save-BYOApplicationList { try { # Ensure items are sorted by current priority before saving - # Exclude CopyStatus when saving - $applications = $listView.Items | Sort-Object Priority | Select-Object Priority, Name, CommandLine, Arguments, Source + # Exclude CopyStatus when saving and ensure Priority is an integer + $applications = $listView.Items | Sort-Object Priority | Select-Object @{N = 'Priority'; E = { [int]$_.Priority } }, Name, CommandLine, Arguments, Source $applications | ConvertTo-Json -Depth 5 | Set-Content -Path $Path -Force -Encoding UTF8 [System.Windows.MessageBox]::Show("Applications saved successfully to `"$Path`".", "Save Applications", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Information) } @@ -343,7 +343,7 @@ function Start-CopyBYOApplicationTask { # Build the new entry $newEntry = [pscustomobject]@{ - Priority = $priority + Priority = [int]$priority Name = $appName CommandLine = $commandLine Arguments = $arguments