################################################################################
## File: Validate-Msys2.ps1
## Desc: Validate Msys2
################################################################################
$msys2BinDir = "C:\msys64\usr\bin"
$msys2mingwDir = "C:\msys64\mingw64\bin"
$installedTools = @(
"bash",
"tar",
"make"
)
Write-Host "Check installed tools in msys2/usr/bin directory"
$installedTools | ForEach-Object {
$toolName = $_
try {
Invoke-Expression "$msys2BinDir\$_ --version"
} catch {
Write-Host "$toolName was not installed in MSYS2 bin directory"
Write-Error $_
exit 1
}
}
Write-Host "Check gcc in msys2/mingw64/bin directory"
try {
Invoke-Expression "$msys2mingwDir\gcc --version"
} catch {
Write-Host "gcc was not installed in MSYS2 bin directory"
Write-Error $_
exit 1
}
Write-Host "Check cmake in msys2/mingw64/bin directory"
try {
Invoke-Expression "$msys2mingwDir\cmake --version"
} catch {
Write-Host "cmake was not installed in MSYS2 bin directory"
Write-Error $_
exit 1
}
# Adding description of the software to Markdown
function Get-ToolVersion {
param(
[string] $ToolPath,
[int] $VersionLineNumber
)
$toolRawVersion = Invoke-Expression "$ToolPath --version"
$toolRawVersion.Split([System.Environment]::NewLine)[$VersionLineNumber] -match "\d+\.\d+(\.\d+)?"
$toolVersion = $matches[0]
return $toolVersion
}
$SoftwareName = "MSYS2"
$pacmanVersion = Get-ToolVersion -ToolPath "$msys2BinDir/pacman" -VersionLineNumber 1
$bashVersion = Get-ToolVersion -ToolPath "$msys2BinDir/bash" -VersionLineNumber 0
$gccVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/gcc" -LineNumber 0
$tarVersion = Get-ToolVersion -ToolPath "$msys2BinDir/tar" -LineNumber 0
$makeVersion = Get-ToolVersion -ToolPath "$msys2BinDir/make" -LineNumber 0
$cmakeVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/cmake" -LineNumber 0
$Description = @"
_Tool versions_
_Pacman:_ $pacmanVersion
_Bash:_ $bashVersion
_gcc:_ $gccVersion
_tar:_ $tarVersion
_make:_ $makeVersion
_cmake:_ $cmakeVersion
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description