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}"
}