#!/usr/bin/env bash set -e # This file downloads all of the binary dependencies we have, and checks out a # specific git hash. # # repos it installs: # github.com/mitchellh/gox # github.com/golang/dep/cmd/dep # gopkg.in/alecthomas/gometalinter.v2 # github.com/gogo/protobuf/protoc-gen-gogo # github.com/square/certstrap ## check if GOPATH is set if [ -z ${GOPATH+x} ]; then echo "please set GOPATH (https://github.com/golang/go/wiki/SettingGOPATH)" exit 1 fi mkdir -p "$GOPATH/src/github.com" cd "$GOPATH/src/github.com" || exit 1 installFromGithub() { repo=$1 commit=$2 # optional subdir=$3 echo "--> Installing $repo ($commit)..." if [ ! -d "$repo" ]; then mkdir -p "$repo" git clone "https://github.com/$repo.git" "$repo" fi if [ ! -z ${subdir+x} ] && [ ! -d "$repo/$subdir" ]; then echo "ERROR: no such directory $repo/$subdir" exit 1 fi pushd "$repo" && \ git fetch origin && \ git checkout -q "$commit" && \ if [ ! -z ${subdir+x} ]; then cd "$subdir" || exit 1; fi && \ go install && \ if [ ! -z ${subdir+x} ]; then cd - || exit 1; fi && \ popd || exit 1 echo "--> Done" echo "" } installFromGithub mitchellh/gox 51ed453898ca5579fea9ad1f08dff6b121d9f2e8 installFromGithub golang/dep 22125cfaa6ddc71e145b1535d4b7ee9744fefff2 cmd/dep ## gometalinter v2.0.11 installFromGithub alecthomas/gometalinter 17a7ffa42374937bfecabfb8d2efbd4db0c26741 installFromGithub gogo/protobuf 61dbc136cf5d2f08d68a011382652244990a53a9 protoc-gen-gogo installFromGithub square/certstrap e27060a3643e814151e65b9807b6b06d169580a7