scripts/Windows/install_vstest_console_logger.ps1

Write-Host "Installing AppVeyor logger for VSTest.Console..." -ForegroundColor Cyan

$vs2013TestWindowPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$vs2015TestWindowPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$vs2017TestWindowPath1 = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$vs2017TestWindowPath2 = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\TestPlatform"

$vs2019RootPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Community"
if (-not (Test-Path $vsPath)) {
    $vs2019RootPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Preview"
}

$vs2019TestWindowPath1 = "$vs2019RootPath\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$vs2019TestWindowPath2 = "$vs2019RootPath\Common7\IDE\Extensions\TestPlatform"

$vs2013Path = "$vs2013TestWindowPath\Extensions"
$vs2015Path = "$vs2015TestWindowPath\Extensions"
$vs2017Path1 = "$vs2017TestWindowPath1\Extensions"
$vs2017Path2 = "$vs2017TestWindowPath2\Extensions"
$vs2019Path1 = "$vs2019TestWindowPath1\Extensions"
$vs2019Path2 = "$vs2019TestWindowPath2\Extensions"

Remove-Path $vs2013TestWindowPath
Remove-Path $vs2015TestWindowPath
Remove-Path $vs2017TestWindowPath1
Remove-Path $vs2017TestWindowPath2
Remove-Path $vs2019TestWindowPath1
Remove-Path $vs2019TestWindowPath2

# VS 2013
Remove-Item "$vs2013Path\appveyor.*" -Force
$zipPath = "$($env:TEMP)\Appveyor.MSTestLogger.zip"
(New-Object Net.WebClient).DownloadFile('http://www.appveyor.com/downloads/Appveyor.MSTestLogger.zip', $zipPath)

if(Test-Path $vs2013Path) {
    # VS 2015
    Remove-Item "$vs2013Path\appveyor.*" -Force
    7z x $zipPath -y -o"$vs2013Path" | Out-Null
}

if(Test-Path $vs2015Path) {
    # VS 2015
    Remove-Item "$vs2015Path\appveyor.*" -Force
    7z x $zipPath -y -o"$vs2015Path" | Out-Null
}

if(Test-Path $vs2017Path1) {
    # VS 2017
    Remove-Item "$vs2017Path1\appveyor.*" -Force
    $zipPath2 = "$($env:TEMP)\Appveyor.MSTestLogger.VS2017.zip"
    (New-Object Net.WebClient).DownloadFile('http://www.appveyor.com/downloads/Appveyor.MSTestLogger.VS2017.zip', $zipPath2)
    7z x $zipPath2 -y -o"$vs2017Path1" | Out-Null
    del $zipPath2
}

if(Test-Path $vs2017Path2) {
    # VS 2017
    Remove-Item "$vs2017Path2\appveyor.*" -Force
    $zipPath2 = "$($env:TEMP)\Appveyor.MSTestLogger.VS2017.zip"
    (New-Object Net.WebClient).DownloadFile('http://www.appveyor.com/downloads/Appveyor.MSTestLogger.VS2017.zip', $zipPath2)
    7z x $zipPath2 -y -o"$vs2017Path2" | Out-Null
    del $zipPath2
}

if(Test-Path $vs2019Path1) {
    # VS 2019
    Remove-Item "$vs2019Path1\appveyor.*" -Force
    $zipPath2 = "$($env:TEMP)\Appveyor.MSTestLogger.VS2017.zip"
    (New-Object Net.WebClient).DownloadFile('http://www.appveyor.com/downloads/Appveyor.MSTestLogger.VS2017.zip', $zipPath2)
    7z x $zipPath2 -y -o"$vs2019Path1" | Out-Null
    del $zipPath2
}

if(Test-Path $vs2019Path2) {
    # VS 2019
    Remove-Item "$vs2019Path2\appveyor.*" -Force
    $zipPath2 = "$($env:TEMP)\Appveyor.MSTestLogger.VS2017.zip"
    (New-Object Net.WebClient).DownloadFile('http://www.appveyor.com/downloads/Appveyor.MSTestLogger.VS2017.zip', $zipPath2)
    7z x $zipPath2 -y -o"$vs2019Path2" | Out-Null
    del $zipPath2
}

del $zipPath

# modify PATH
if(Test-Path $vs2019Path2) {
    Add-Path $vs2019TestWindowPath2
} elseif(Test-Path $vs2017Path2) {
    Add-Path $vs2017TestWindowPath2
} elseif (Test-Path $vs2015Path) {
    Add-Path $vs2015TestWindowPath
} else {
    Add-Path $vs2013TestWindowPath
}

Write-Host "AppVeyor VSTest.Console logger installed" -ForegroundColor Green