diff --git a/FFUDevelopment/FFU.Common/FFU.Common.Parallel.psm1 b/FFUDevelopment/FFU.Common/FFU.Common.Parallel.psm1 index 0e9830e..b53f5b6 100644 --- a/FFUDevelopment/FFU.Common/FFU.Common.Parallel.psm1 +++ b/FFUDevelopment/FFU.Common/FFU.Common.Parallel.psm1 @@ -269,7 +269,7 @@ function Invoke-ParallelProcessing { else { # Fallback for any task that *still* doesn't return 'Success'. This is now the exceptional case. WriteLog "Warning: Task for '$taskSpecificIdentifier' did not return a 'Success' property. Inferring from status: '$($taskResult.Status)'" - if ($taskResult.Status -like 'Completed*' -or $taskResult.Status -like 'Already downloaded*') { + if ($taskResult.Status -like 'Completed*' -or $taskResult.Status -like 'Already downloaded*' -or $taskResult.Status -like 'Compression successful*') { $resultCode = 0 # Treat as success } else { diff --git a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Dell.psm1 b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Dell.psm1 index 59290b9..643c8b3 100644 --- a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Dell.psm1 +++ b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Dell.psm1 @@ -157,17 +157,19 @@ function Save-DellDriversTask { } if ($CompressToWim -and $existing.Status -eq 'Already downloaded') { $wimPath = Join-Path $makeDriversPath "$sanitizedModelName.wim" + $wimRelativePath = Join-Path $make "$sanitizedModelName.wim" $srcPath = Join-Path $makeDriversPath $sanitizedModelName if ($null -ne $ProgressQueue) { Invoke-ProgressUpdate -ProgressQueue $ProgressQueue -Identifier $modelDisplay -Status 'Compressing existing...' } try { - Compress-DriverFolderToWim -SourceFolderPath $srcPath -DestinationWimPath $wimPath -WimName $modelDisplay -WimDescription "Drivers for $modelDisplay" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop - $existing.Status = 'Already downloaded & Compressed' - $existing.DriverPath = Join-Path $make "$sanitizedModelName.wim" + $null = Compress-DriverFolderToWim -SourceFolderPath $srcPath -DestinationWimPath $wimPath -WimName $modelDisplay -WimDescription "Drivers for $modelDisplay" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop + $existing.Status = 'Compression successful' + $existing.DriverPath = $wimRelativePath $existing.Success = $true } catch { WriteLog "Compression failed for $($modelDisplay): $($_.Exception.Message)" $existing.Status = 'Already downloaded (Compression failed)' + $existing.Success = $false } if ($null -ne $ProgressQueue) { Invoke-ProgressUpdate -ProgressQueue $ProgressQueue -Identifier $modelDisplay -Status $existing.Status } } @@ -341,7 +343,7 @@ function Save-DellDriversTask { if ($null -ne $ProgressQueue) { Invoke-ProgressUpdate -ProgressQueue $ProgressQueue -Identifier $modelDisplay -Status 'Compressing...' } $wimPath = Join-Path $makeDriversPath "$sanitizedModelName.wim" try { - Compress-DriverFolderToWim -SourceFolderPath $modelPath -DestinationWimPath $wimPath -WimName $modelDisplay -WimDescription $modelDisplay -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop + $null = Compress-DriverFolderToWim -SourceFolderPath $modelPath -DestinationWimPath $wimPath -WimName $modelDisplay -WimDescription $modelDisplay -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop $driverRelativePath = Join-Path $make "$sanitizedModelName.wim" $statusFinal = 'Completed & Compressed' } diff --git a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.HP.psm1 b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.HP.psm1 index 27c2fdc..1e96a95 100644 --- a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.HP.psm1 +++ b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.HP.psm1 @@ -179,13 +179,14 @@ function Save-HPDriversTask { # Special handling for existing folders that need compression if ($CompressToWim -and $existingDriver.Status -eq 'Already downloaded') { $wimFilePath = Join-Path -Path $hpDriversBaseFolder -ChildPath "$($sanitizedModelName).wim" + $wimRelativePath = Join-Path -Path $make -ChildPath "$($sanitizedModelName).wim" $sourceFolderPath = Join-Path -Path $hpDriversBaseFolder -ChildPath $sanitizedModelName WriteLog "Attempting compression of existing folder '$sourceFolderPath' to '$wimFilePath'." if ($null -ne $ProgressQueue) { Invoke-ProgressUpdate -ProgressQueue $ProgressQueue -Identifier $identifier -Status "Compressing existing..." } try { - Compress-DriverFolderToWim -SourceFolderPath $sourceFolderPath -DestinationWimPath $wimFilePath -WimName $identifier -WimDescription "Drivers for $identifier" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop - $existingDriver.Status = "Already downloaded & Compressed" - $existingDriver.DriverPath = Join-Path -Path $make -ChildPath "$($sanitizedModelName).wim" + $null = Compress-DriverFolderToWim -SourceFolderPath $sourceFolderPath -DestinationWimPath $wimFilePath -WimName $identifier -WimDescription "Drivers for $identifier" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop + $existingDriver.Status = "Compression successful" + $existingDriver.DriverPath = $wimRelativePath $existingDriver.Success = $true WriteLog "Successfully compressed existing drivers for $identifier to $wimFilePath." } @@ -407,7 +408,7 @@ function Save-HPDriversTask { $wimFilePath = Join-Path -Path $hpDriversBaseFolder -ChildPath "$($identifier).wim" WriteLog "Compressing '$modelSpecificFolder' to '$wimFilePath'..." try { - Compress-DriverFolderToWim -SourceFolderPath $modelSpecificFolder -DestinationWimPath $wimFilePath -WimName $identifier -WimDescription "Drivers for $identifier" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop + $null = Compress-DriverFolderToWim -SourceFolderPath $modelSpecificFolder -DestinationWimPath $wimFilePath -WimName $identifier -WimDescription "Drivers for $identifier" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop WriteLog "Compression successful for '$identifier'." $finalStatus = "Completed & Compressed" $driverRelativePath = Join-Path -Path $make -ChildPath "$($identifier).wim" # Update relative path to the WIM diff --git a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Lenovo.psm1 b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Lenovo.psm1 index db2950a..e59c3ae 100644 --- a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Lenovo.psm1 +++ b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Lenovo.psm1 @@ -132,13 +132,14 @@ function Save-LenovoDriversTask { # Special handling for existing folders that need compression if ($CompressToWim -and $existingDriver.Status -eq 'Already downloaded') { $wimFilePath = Join-Path -Path $makeDriversPath -ChildPath "$($sanitizedIdentifier).wim" + $wimRelativePath = Join-Path -Path $make -ChildPath "$($sanitizedIdentifier).wim" $sourceFolderPath = Join-Path -Path $makeDriversPath -ChildPath $sanitizedIdentifier WriteLog "Attempting compression of existing folder '$sourceFolderPath' to '$wimFilePath'." if ($null -ne $ProgressQueue) { Invoke-ProgressUpdate -ProgressQueue $ProgressQueue -Identifier $identifier -Status "Compressing existing..." } try { - Compress-DriverFolderToWim -SourceFolderPath $sourceFolderPath -DestinationWimPath $wimFilePath -WimName $identifier -WimDescription "Drivers for $identifier" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop - $existingDriver.Status = "Already downloaded & Compressed" - $existingDriver.DriverPath = Join-Path -Path $make -ChildPath "$($sanitizedIdentifier).wim" + $null = Compress-DriverFolderToWim -SourceFolderPath $sourceFolderPath -DestinationWimPath $wimFilePath -WimName $identifier -WimDescription "Drivers for $identifier" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop + $existingDriver.Status = "Compression successful" + $existingDriver.DriverPath = $wimRelativePath $existingDriver.Success = $true WriteLog "Successfully compressed existing drivers for $identifier to $wimFilePath." } diff --git a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Microsoft.psm1 b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Microsoft.psm1 index 10897b9..1c80d2b 100644 --- a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Microsoft.psm1 +++ b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Drivers.Microsoft.psm1 @@ -123,13 +123,14 @@ function Save-MicrosoftDriversTask { if ($CompressToWim -and $existingDriver.Status -eq 'Already downloaded') { $makeDriversPath = Join-Path -Path $DriversFolder -ChildPath $make $wimFilePath = Join-Path -Path $makeDriversPath -ChildPath "$($modelName).wim" + $wimRelativePath = Join-Path -Path $make -ChildPath "$($modelName).wim" $sourceFolderPath = Join-Path -Path $makeDriversPath -ChildPath $modelName WriteLog "Attempting compression of existing folder '$sourceFolderPath' to '$wimFilePath'." if ($null -ne $ProgressQueue) { Invoke-ProgressUpdate -ProgressQueue $ProgressQueue -Identifier $modelName -Status "Compressing existing..." } try { - Compress-DriverFolderToWim -SourceFolderPath $sourceFolderPath -DestinationWimPath $wimFilePath -WimName $modelName -WimDescription "Drivers for $modelName" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop - $existingDriver.Status = "Already downloaded & Compressed" - $existingDriver.DriverPath = Join-Path -Path $make -ChildPath "$($modelName).wim" + $null = Compress-DriverFolderToWim -SourceFolderPath $sourceFolderPath -DestinationWimPath $wimFilePath -WimName $modelName -WimDescription "Drivers for $modelName" -PreserveSource:$PreserveSourceOnCompress -ErrorAction Stop + $existingDriver.Status = "Compression successful" + $existingDriver.DriverPath = $wimRelativePath $existingDriver.Success = $true WriteLog "Successfully compressed existing drivers for $modelName to $wimFilePath." }