#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail

# ---
# Golang related variables definitions.
# All variables should be in format VAR_XXX
# ---

# go should be found
if ! command -v go &> /dev/null; then
    echo "go could not be found"

    DEFAULT_GOPATH=${GOPATH:-"/go"}
    DEFAULT_GOCACHE=${GOCACHE:-"${HOME}/.cache/go-build"}
    DEFAULT_GOMODCACHE=${GOMODCACHE:-"${DEFAULT_GOPATH}/pkg/mod"}
    DEFAULT_GOPROXY=${GOPROXY:-"https://goproxy.io"}
else
    DEFAULT_GOCACHE=$(go env GOCACHE)
    DEFAULT_GOMODCACHE=$(go env GOMODCACHE)
    DEFAULT_GOPROXY=$(go env GOPROXY)
fi

# VAR_GOCACHE is path of go build cache
readonly VAR_GOCACHE=${VAR_GOCACHE:-"${DEFAULT_GOCACHE}"}

# VAR_GOMODCACHE is path of go mod cache
readonly VAR_GOMODCACHE=${VAR_GOMODCACHE:-"${DEFAULT_GOMODCACHE}"}

# VAR_GOPROXY is proxy of go
readonly VAR_GOPROXY=${VAR_GOPROXY:-"${DEFAULT_GOPROXY}"}
