Implement the windows installation in a loop

This commit is contained in:
Manuel Thalmann 2024-07-31 16:09:50 +02:00
parent d07d4c9057
commit 64c2ba9127
2 changed files with 53 additions and 24 deletions

View file

@ -10,15 +10,24 @@
. "$PSScriptRoot/Upgrade.ps1";
. "$PSScriptRoot/User/Install.ps1";
<#
Finishes the installation of a running Windows machine.
#>
function Start-WindowsInstallation {
Start-InstallationLoop;
}
<#
.SYNOPSIS
Starts the installation loop.
#>
function Start-InstallationLoop {
. "$PSScriptRoot/../Scripts/Choco.ps1";
. "$PSScriptRoot/../Scripts/Hooks.ps1";
. "$PSScriptRoot/../Scripts/PowerManagement.ps1";
. "$PSScriptRoot/../Scripts/SetupConfig.ps1";
while (-not (Get-IsFinished)) {
}
switch (Get-Stage) {
$null {
Invoke-Hook "Start-Initialization" -Fallback {
@ -43,6 +52,7 @@ function Start-WindowsInstallation {
}
Default {}
}
}
}
function Invoke-WindowsInstallation([Context] $context) {

View file

@ -5,6 +5,7 @@ using namespace System.Security.Principal;
$null = New-Module {
[string] $configRoot = "HKLM:\Software\PortValhalla";
[string] $stageOption = "Stage";
[string] $finishedOption = "Finished";
[RegistryKey] $key = $null;
<#
@ -99,4 +100,22 @@ $null = New-Module {
$null = Set-SetupOption $stageOption $Name;
}
<#
.SYNOPSIS
Gets a value indicating whether the setup has finished.
#>
function Get-IsFinished {
return [bool] (Get-SetupOption $finishedOption);
}
<#
.SYNOPSIS
Sets a value indicating whether the setup has finished.
#>
function Set-IsFinished {
param(
$Value
)
}
}