$ErrorActionPreference = 'Stop' function Get-ExeVersion { param( [string]$Path, [string]$EnvName ) if ($EnvName -eq 'WSL') { $checkCmd = "if [ -x ""$Path"" ]; then $Path --version; else echo 'Not Found'; fi" $output = wsl.exe -d Ubuntu -e bash -c $checkCmd } else { if (Test-Path $Path) { $output = & $Path --version 2>&1 } else { $output = 'Not Found' } } if ([string]::IsNullOrWhiteSpace($output)) { return "No Output / Errored" } return $output.Trim() } Write-Host "=======================================" -ForegroundColor Cyan Write-Host " MCP Memory Executable Version Checker " -ForegroundColor Cyan Write-Host "=======================================" -ForegroundColor Cyan Write-Host "" $winBase = "C:\Users\reazul.ashraf\.local\bin" $wslBase = "/home/riz/.local/bin" $components = @( @{ Name = "Server (Win)"; Path = "$winBase\mcp-memory-server.exe"; Env = "Win" }, @{ Name = "Stub (Win)"; Path = "$winBase\mcp-memory-stub.exe"; Env = "Win" }, @{ Name = "Win-Nvim"; Path = "$winBase\mcp-memory-win-nvim.exe"; Env = "Win" }, @{ Name = "Server (WSL)"; Path = "$wslBase/mcp-memory-server"; Env = "WSL" }, @{ Name = "Stub (WSL)"; Path = "$wslBase/mcp-memory-stub"; Env = "WSL" }, @{ Name = "Linux-Nvim"; Path = "$wslBase/mcp-memory-linux-nvim"; Env = "WSL" } ) foreach ($comp in $components) { Write-Host ("Checking {0,-15} -> " -f $comp.Name) -NoNewline $ver = Get-ExeVersion -Path $comp.Path -EnvName $comp.Env if ($ver -eq "Not Found") { Write-Host $ver -ForegroundColor Red } elseif ($ver -eq "No Output / Errored") { Write-Host $ver -ForegroundColor Yellow } else { Write-Host $ver -ForegroundColor Green } } Write-Host "" Write-Host "Done!" -ForegroundColor Cyan