Functions/Install-ExeFromUrl.ps1



function Install-ExeFromUrl {
    [CmdletBinding()]
    param ([string] $exePath
        , [string] $url
        , [string] $toolName
        , [string[]] $exeArgs
    )

    $response = Get-FileFromUrl -ToolPath $exePath -url $url 
    Write-Verbose "Response received"
    if ($null -ne $Response) {
        try {
            Write-Host "$toolName to be installed"
            $toolexe = $Response.filename
            $ErrorActionPreference = "continue";
            Write-Verbose "Executing file: $toolexe"
            Write-Verbose "Args: $exeArgs"
            $LASTEXITCODE=0
            $result = start-Process $toolexe -ArgumentList $exeArgs -Wait -PassThru
            $ErrorActionPreference = "stop";
            if ($null -ne $result.ExitCode -and $result.ExitCode -ne 0) {
                throw "Installation of $toolname failed, see previous output"
            }

            Save-MetaDataToFile (Get-MetaDataFile  $exePath) $response.Metadata
            Write-Host "$toolName installed"
        }
        catch { throw }
    }
    

}