From 0d9c4c76d51871370ab61f954081a277a5dea120 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Mon, 26 Aug 2024 23:33:46 +0200 Subject: [PATCH] Create a separate script for WSL interaction --- scripts/Common/Scripts/Constants.ps1 | 7 ------- scripts/Common/Scripts/Operations.ps1 | 2 +- scripts/Windows/OS/Install.ps1 | 6 +++--- scripts/Windows/Scripts/WSL.ps1 | 25 +++++++++++++++++++++++++ 4 files changed, 29 insertions(+), 11 deletions(-) delete mode 100644 scripts/Common/Scripts/Constants.ps1 create mode 100644 scripts/Windows/Scripts/WSL.ps1 diff --git a/scripts/Common/Scripts/Constants.ps1 b/scripts/Common/Scripts/Constants.ps1 deleted file mode 100644 index 01217a8d..00000000 --- a/scripts/Common/Scripts/Constants.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -<# - .SYNOPSIS - Gets the name of the WSL distribution used for reading configuration values. -#> -function Get-DistributionName { - return "ValhallaUbuntu"; -} diff --git a/scripts/Common/Scripts/Operations.ps1 b/scripts/Common/Scripts/Operations.ps1 index 5527e310..b6ada82a 100644 --- a/scripts/Common/Scripts/Operations.ps1 +++ b/scripts/Common/Scripts/Operations.ps1 @@ -1,9 +1,9 @@ . "$PSScriptRoot/Config.ps1"; -. "$PSScriptRoot/Constants.ps1"; . "$PSScriptRoot/../Types/OneShotTask.ps1"; . "$PSScriptRoot/../../Windows/Scripts/PowerManagement.ps1"; . "$PSScriptRoot/../../Windows/Scripts/Registry.ps1"; . "$PSScriptRoot/../../Windows/Scripts/Security.ps1"; +. "$PSScriptRoot/../../Windows/Scripts/WSL.ps1"; $null = New-Module { . "$PSScriptRoot/../Types/OneShotTask.ps1"; diff --git a/scripts/Windows/OS/Install.ps1 b/scripts/Windows/OS/Install.ps1 index 6825c07e..7cdf35ce 100644 --- a/scripts/Windows/OS/Install.ps1 +++ b/scripts/Windows/OS/Install.ps1 @@ -3,6 +3,7 @@ using namespace System.Management.Automation.Host; using namespace System.Security.Principal; . "$PSScriptRoot/../../../scripts/Windows/Scripts/Prerequisites.ps1"; +. "$PSScriptRoot/../../../scripts/Windows/Scripts/WSL.ps1"; . "$PSScriptRoot/../../Common/Scripts/Context.ps1"; . "$PSScriptRoot/../Scripts/Security.ps1"; . "$PSScriptRoot/../Software/Firefox/Install.ps1"; @@ -16,7 +17,6 @@ $null = New-Module { . "$PSScriptRoot/../Scripts/Security.ps1"; . "$PSScriptRoot/../Scripts/Update.ps1"; . "$PSScriptRoot/../Scripts/Users.ps1"; - . "$PSScriptRoot/../../Common/Scripts/Constants.ps1"; . "$PSScriptRoot/../../Common/Scripts/Config.ps1"; . "$PSScriptRoot/../../Common/Scripts/Operations.ps1"; . "$PSScriptRoot/../../Common/Scripts/Software.ps1"; @@ -39,8 +39,8 @@ $null = New-Module { #> function Start-InstallationLoop { $distribution = Get-DistributionName; - $wslLocation = "$env:ProgramData/PortValhalla/$distribution"; - $wslDisk = "$wslLocation/ext4.vhdx"; + $wslLocation = Get-DistributionPath; + $wslDisk = Get-DistributionDisk; while (-not (Get-IsFinished)) { switch (Get-Stage) { diff --git a/scripts/Windows/Scripts/WSL.ps1 b/scripts/Windows/Scripts/WSL.ps1 new file mode 100644 index 00000000..7a92a48a --- /dev/null +++ b/scripts/Windows/Scripts/WSL.ps1 @@ -0,0 +1,25 @@ +$null = New-Module { + <# + .SYNOPSIS + Gets the name of the WSL distribution used for managing the configuration. + #> + function Get-DistributionName { + return "ValhallaUbuntu"; + } + + <# + .SYNOPSIS + Gets the path to the directory containing the WSL distribution. + #> + function Get-DistributionPath { + return "$env:ProgramData/PortValhalla/$distribution"; + } + + <# + .SYNOPSIS + Gets the path to the virtual hard disk of the WSL distribution. + #> + function Get-DistributionDisk { + return "$(Get-DistributionPath)/ext4.vhdx"; + } +};