From eadf8cfe6a764d205658a0c16ef6b8349b280385 Mon Sep 17 00:00:00 2001 From: Bjarke Sporring Date: Thu, 15 Jan 2026 10:23:15 +0100 Subject: [PATCH] fix: version checks --- install.ps1 | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/install.ps1 b/install.ps1 index a5fde67..25f110a 100644 --- a/install.ps1 +++ b/install.ps1 @@ -93,7 +93,10 @@ function Get-InstalledVersion { try { $output = & $Command $VersionArg 2>&1 | Select-Object -First 1 - return $output.ToString().Trim() + if ($null -ne $output) { + return $output.ToString().Trim() + } + return $null } catch { return $null @@ -132,7 +135,10 @@ function Install-Package { # Extract semantic version numbers only - stop before any non-digit/non-dot characters # This extracts "2.52.0" from "2.52.0.windows.1" if ($version -match '(\d+)(?:\.(\d+))?(?:\.(\d+))?') { - $installedVersion = $matches[1] + "." +$matches[2] + $major = $matches[1] + $minor = if ($matches[2]) { $matches[2] } else { "0" } + $patch = if ($matches[3]) { $matches[3] } else { "0" } + $installedVersion = "$major.$minor.$patch" try { if ([version]$installedVersion -lt [version]$MinVersion) { Write-Warning "Version $installedVersion is below minimum required version $MinVersion" @@ -310,11 +316,11 @@ function Get-SystemPrerequisites { $minor = if ($matches[2]) { [int]$matches[2] } else { 0 } $patch = if ($matches[3]) { [int]$matches[3] } else { 0 } $installedVersion = "$major.$minor.$patch" - + $minParts = $tool.MinVersion.Split('.') $minMajor = [int]$minParts[0] - $minMinor = if ($minParts[1]) { [int]$minParts[1] } else { 0 } - $minPatch = if ($minParts[2]) { [int]$minParts[2] } else { 0 } + $minMinor = if ($minParts.Length -gt 1) { [int]$minParts[1] } else { 0 } + $minPatch = if ($minParts.Length -gt 2) { [int]$minParts[2] } else { 0 } $minVersion = "$minMajor.$minMinor.$minPatch" if ([version]$installedVersion -lt [version]$minVersion) {