. ./exiter.ps1

$ErrorActionPreference = "Stop";
trap { $host.SetShouldExit(1) }

$BOSH_INSTALL_TARGET = Resolve-Path "${env:BOSH_INSTALL_TARGET}"

$env:GOROOT="C:\var\vcap\packages\golang-windows\go"
$env:GOPATH="${BOSH_INSTALL_TARGET}"
$env:PATH="${env:GOROOT}\bin;${env:PATH}"
$rep_pkg_path="code.cloudfoundry.org/rep/cmd/rep"
$gocurl_pkg_path="code.cloudfoundry.org/rep/cmd/gocurl"

# Create GOPATH
New-Item -ItemType "directory" -Force "${BOSH_INSTALL_TARGET}\src"

robocopy.exe /E "${PWD}" "${BOSH_INSTALL_TARGET}\src"
if ($LASTEXITCODE -ge 8) {
    Write-Error "robocopy.exe /E ${PWD} ${BOSH_INSTALL_TARGET}\src"
}

go.exe build -o "${BOSH_INSTALL_TARGET}\rep.exe" "${rep_pkg_path}"
if ($LASTEXITCODE -ne 0) {
    Write-Error "Error compiling: ${rep_pkg_path}"
}

go.exe build -o "${BOSH_INSTALL_TARGET}\gocurl.exe" "${gocurl_pkg_path}"
if ($LASTEXITCODE -ne 0) {
    Write-Error "Error compiling: ${gocurl_pkg_path}"
}

# Cleanup build artifacts
New-Item -ItemType directory -Path ".\emptydirectory" -Force

robocopy.exe ".\emptydirectory" "${BOSH_INSTALL_TARGET}\src" /PURGE
if ($LASTEXITCODE -ge 8) {
    Write-Error "robocopy.exe .\emptydirectory ${BOSH_INSTALL_TARGET}\src /PURGE"
}

Remove-Item -Recurse -Path "${BOSH_INSTALL_TARGET}\src" -Force
Remove-Item -Recurse -Path ".\emptydirectory" -Force

Exit 0
