functions/private/Get-WoWInstallPath.ps1
function Get-WoWInstallPath { [cmdletbinding()] param( [Parameter( )] [ValidateSet('Retail','Classic','Wrath')] $WowEdition = 'Retail' ) begin { Write-Verbose "Attempting to find WoW install path [$($WowEdition)]..." [string]$regPath = 'hklm:\SOFTWARE\WOW6432Node\Blizzard Entertainment\World of Warcraft' } process { try { if ($IsLinux) { if (!$config.InstallPath) { do { $base = Read-Host "Wow install path?" } until (Test-Path -Path $base) $configExport = [PSCustomObject]@{ InstallPath = $base } $configExport | ConvertTo-Json -Depth 2 | Out-File -FilePath "$($defaultPSElvUIDir)$($separator)config.json" } else { $base = $config.InstallPath } } elseif ($IsMacOS) { $base = '/Applications/World of Warcraft' } else { $wowInstallPath = (Get-Item $regPath).GetValue('InstallPath') $base = Split-Path -Path $wowInstallPath } switch ($WowEdition) { 'Retail' { $wowInstallPath = "$($base)$($separator)_retail_$($separator)" } 'Classic' { $wowInstallPath = "$($base)$($separator)_classic_era_$($separator)" } 'Wrath' { $wowInstallPath = "$($base)$($separator)_classic_$($separator)" } } $addonsFolder = "$($wowInstallPath)Interface$($separator)AddOns" $wowInstallInfo = [PSCustomObject]@{ AddonsFolder = $addonsFolder WowInstallPath = $wowInstallPath } } catch { $errorMessage = $_.Exception.Message throw "Error determining WoW Install Path/ElvUi Version -> [$errorMessage]!" } } end { return $wowInstallInfo } } |