Skip to content

Instantly share code, notes, and snippets.

@azamara
Created May 4, 2018 01:32
Show Gist options
  • Save azamara/702141e305c392c9db4454af6901fd64 to your computer and use it in GitHub Desktop.
Save azamara/702141e305c392c9db4454af6901fd64 to your computer and use it in GitHub Desktop.
go project env configure
#!/bin/bash
# Color Code
# 30 Black
# 31 Red
# 32 Green
# 33 Yellow
# 34 Blue
# 35 Magenta
# 36 Cyan
# Common functions
log () {
printf "\033[1;${2}m${1}\033[0m\n"
}
# Set variables
TARGET_GO_VERSION="go1.10"
GVM_VERSION=$(gvm version)
PROJECT_NAME="${PWD##*/}"
log "TARGET_GO_VERSION: ${TARGET_GO_VERSION}" 36
log "GVM_VERSION: ${GVM_VERSION}" 36
log "PROJECT_NAME: ${PROJECT_NAME}" 36
log "1. Check gvm" 35
# try
{
which gvm
# catch
} || {
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
}
source "$HOME/.gvm/scripts/gvm"
log "Done" 32
log "2. Check go version" 35
# try
{
gvm use $TARGET_GO_VERSION --default
# catch
} || {
gvm install $TARGET_GO_VERSION --binary
gvm use $TARGET_GO_VERSION --default
}
log "Done" 32
log "3. Show go version" 35
go version
log "Done" 32
log "4. Link this project to \$GOPATH" 35
gvm pkgset create $PROJECT_NAME
gvm pkgset use $PROJECT_NAME
gvm pkgset list
{
ls ../../src
} || {
mkdir -p ../../src
}
cd ../..
BEFORE_GOPATH="GOPATH=\".*"
PROJECT_GOPATH="GOPATH=\"$(pwd)\""
sed -i -e 's/'"${BEFORE_GOPATH//\//\\/}"'/'"${PROJECT_GOPATH//\//\\/}"'/g' ~/.gvm/environments/$TARGET_GO_VERSION
cat ~/.gvm/environments/$TARGET_GO_VERSION
log "Done" 32
log "5. Install dependencies" 35
GOPATH=$(pwd)
export GOPATH; GOPATH=${GOPATH}
echo $GOPATH
cd $(pwd)/src/$PROJECT_NAME
# try
{
../../bin/dep version
# catch
} || {
go get -u github.com/golang/dep/cmd/dep
}
../../bin/dep ensure
log "Done" 32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment