Skip to content

Commit

Permalink
improve automation
Browse files Browse the repository at this point in the history
- runs everything at the same time
- does not work without displaying ui
  • Loading branch information
MyDrift-user committed Aug 24, 2024
1 parent cfb9edb commit ae87100
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 30 deletions.
10 changes: 9 additions & 1 deletion functions/public/Invoke-WPFFeatureInstall.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,21 @@ function Invoke-WPFFeatureInstall {
#>

param (
$FeatureConfig
)

if($sync.ProcessRunning) {
$msg = "[Invoke-WPFFeatureInstall] Install process is currently running."
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}

$Features = (Get-WinUtilCheckBoxes)["WPFFeature"]
if ($FeatureConfig) {
$Features = $FeatureConfig
} else {
$Features = (Get-WinUtilCheckBoxes)["WPFFeature"]
}

Invoke-WPFRunspace -ArgumentList $Features -DebugPreference $DebugPreference -ScriptBlock {
param($Features, $DebugPreference)
Expand Down
12 changes: 10 additions & 2 deletions functions/public/Invoke-WPFInstall.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,22 @@ function Invoke-WPFInstall {
#>

param (
$InstallConfig
)

if($sync.ProcessRunning) {
$msg = "[Invoke-WPFInstall] An Install process is currently running."
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}

$PackagesToInstall = (Get-WinUtilCheckBoxes)["Install"]
Write-Host $PackagesToInstall
if ($InstallConfig) {
$PackagesToInstall = $InstallConfig
} else {
$PackagesToInstall = (Get-WinUtilCheckBoxes)["Install"]
}

if ($PackagesToInstall.Count -eq 0) {
$WarningMsg = "Please select the program(s) to install or upgrade"
[System.Windows.MessageBox]::Show($WarningMsg, $AppTitle, [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
Expand Down
10 changes: 9 additions & 1 deletion functions/public/Invoke-WPFtweaksbutton.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,21 @@ function Invoke-WPFtweaksbutton {
#>

param (
$TweaksConfig
)

if($sync.ProcessRunning) {
$msg = "[Invoke-WPFtweaksbutton] Install process is currently running."
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}

$Tweaks = (Get-WinUtilCheckBoxes)["WPFTweaks"]
if ($TweaksConfig) {
$Tweaks = $TweaksConfig
} else {
$Tweaks = (Get-WinUtilCheckBoxes)["WPFTweaks"]
}

Set-WinUtilDNS -DNSProvider $sync["WPFchangedns"].text

Expand Down
59 changes: 33 additions & 26 deletions scripts/main.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -322,38 +322,45 @@ Add-Type @"
# maybe this is not the best place to load and execute config file?
# maybe community can help?
if ($PARAM_CONFIG) {
Invoke-WPFImpex -type "import" -Config $PARAM_CONFIG
if ($PARAM_RUN) {
while ($sync.ProcessRunning) {
Start-Sleep -Seconds 5
$installConfig = Get-Content $PARAM_CONFIG -Raw | ConvertFrom-Json
if ($installConfig.WPFTweaks) {
write-host "Running Tweaks"
Invoke-WPFtweaksbutton -TweaksConfig $installConfig.WPFTweaks
}
Start-Sleep -Seconds 5

Write-Host "Applying tweaks..."
Invoke-WPFtweaksbutton
while ($sync.ProcessRunning) {
Start-Sleep -Seconds 5
}
Start-Sleep -Seconds 5

Write-Host "Installing features..."
Invoke-WPFFeatureInstall
while ($sync.ProcessRunning) {
Start-Sleep -Seconds 5
if ($installConfig.WPFFeature) {
write-host "Installing Features"
Invoke-WPFFeatureInstall -FeatureConfig $installConfig.WPFFeature
}

Start-Sleep -Seconds 5
Write-Host "Installing applications..."
while ($sync.ProcessRunning) {
Start-Sleep -Seconds 1
if ($installConfig.WPFInstall) {
write-host "Installing Programs"

# Create a new array to hold the combined install configurations
$combinedInstallConfig = @()

# Iterate over each WPFInstall entry
for ($i = 0; $i -lt $installConfig.WPFInstall.Count; $i++) {
$wpfInstallEntry = $installConfig.WPFInstall[$i]
$installEntry = $installConfig.Install[$i]

# Create a new object with the combined values
$combinedEntry = @{
Name = $wpfInstallEntry
Winget = $installEntry.winget
Choco = $installEntry.choco
}

# Add the combined entry to the array
$combinedInstallConfig += $combinedEntry
}

# Invoke the WPFInstall function with the combined configuration
Invoke-WPFInstall -InstallConfig $combinedInstallConfig
}
Invoke-WPFInstall
Start-Sleep -Seconds 5

Write-Host "Done."
} else {
Invoke-WPFImpex -type "import" -Config $PARAM_CONFIG
}
}

})

# Load Checkboxes and Labels outside of the Filter function only once on startup for performance reasons
Expand Down

0 comments on commit ae87100

Please sign in to comment.