################################################################################
##  File:  Configure-Toolset.ps1
##  Team:  CI-Build
##  Desc:  Configure toolset
################################################################################

Import-Module "~/image-generation/helpers/Common.Helpers.psm1"

function Get-ToolsetToolFullPath {
    param
    (
        [Parameter(Mandatory)] [string] $ToolName,
        [Parameter(Mandatory)] [string] $ToolVersion,
        [Parameter(Mandatory)] [string] $ToolArchitecture
    )

    $toolPath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath $toolName
    $toolPathVersion = Join-Path -Path $toolPath -ChildPath $toolVersion
    $foundVersion = Get-Item $toolPathVersion | Sort-Object -Property {[version]$_.name} -Descending | Select-Object -First 1
    $installationDir = Join-Path -Path $foundVersion -ChildPath $toolArchitecture
    return $installationDir
}

$arch = Get-Architecture
$toolcache = (Get-ToolsetContent).toolcache

foreach ($tool in $toolcache) {
    $toolName = $tool.name
    $toolEnvironment = $tool.arch.$arch.variable_template

    if (-not $toolEnvironment) {
        continue
    }

    foreach ($toolVersion in $tool.arch.$arch.versions) {
        Write-Host "Set $toolName $toolVersion environment variable..."
        $toolPath = Get-ToolsetToolFullPath -ToolName $toolName -ToolVersion $toolVersion -ToolArchitecture $arch
        $envName = $toolEnvironment -f $toolVersion.split(".")

        # Add environment variable name=value
        $envVar = "export {0}={1}" -f $envName, $toolPath
        Add-Content -Path "${env:HOME}/.bashrc" -Value $envVar
    }
}
