dev-tools/common.bash (38 lines of code) (raw):

# # File: common.bash # # Common bash routines. # # Script directory: _sdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # debug "msg" # Write a debug message to stderr. debug() { if [ "$VERBOSE" == "true" ]; then echo "DEBUG: $1" >&2 fi } # err "msg" # Write and error message to stderr. err() { echo "ERROR: $1" >&2 } # get_go_version # Read the project's Go version and return it in the GO_VERSION variable. # On failure it will exit. get_go_version() { GO_VERSION=$(cat "${_sdir}/../.go-version") if [ -z "$GO_VERSION" ]; then err "Failed to detect the project's Go version" exit 1 fi } # install_gvm # Install gvm to GOPATH # To read more about installing gvm in other platforms: https://github.com/andrewkroh/gvm#installation install_gvm() { # Install gvm if [ ! -f "$(go env GOPATH)/bin/gvm" ]; then go install github.com/andrewkroh/gvm/cmd/gvm@v0.5.2 fi GVM="$(go env GOPATH)/bin/gvm" debug "Gvm version $(${GVM} --version)" } # setup_go_root "version" # This configures the Go version being used. It sets GOROOT and adds # GOROOT/bin to the PATH. It uses gimme to download the Go version if # it does not already exist in the ~/.gimme dir. setup_go_root() { local version=${1} install_gvm # Setup GOROOT and add go to the PATH. eval "$(${GVM} ${version})" debug "$(go version)" } # setup_go_path "gopath" # This sets GOPATH and adds GOPATH/bin to the PATH. setup_go_path() { local gopath="${1}" if [ -z "$gopath" ]; then return; fi # Setup GOPATH. export GOPATH="${gopath}" # Add GOPATH to PATH. export PATH="${GOPATH}/bin:${PATH}" debug "GOPATH=${GOPATH}" }