| #!/usr/bin/env bash |
| |
| # A script for updating godep dependencies for the vendored directory /cmd/ |
| # without pulling in etcd itself as a dependency. |
| # |
| # update depedency |
| # 1. edit glide.yaml with version, git SHA |
| # 2. run ./scripts/updatedep.sh |
| # 3. it automatically detects new git SHA, and vendors updates to cmd/vendor directory |
| # |
| # add depedency |
| # 1. run ./scripts/updatedep.sh github.com/USER/PROJECT#^1.0.0 |
| # OR |
| # ./scripts/updatedep.sh github.com/USER/PROJECT#9b772b54b3bf0be1eec083c9669766a56332559a |
| # 2. make sure glide.yaml and glide.lock are updated |
| |
| if ! [[ "$0" =~ scripts/updatedep.sh ]]; then |
| echo "must be run from repository root" |
| exit 255 |
| fi |
| |
| rm -rf vendor |
| mv cmd/vendor vendor |
| |
| # TODO: glide doesn't play well with symlink |
| echo "manually deleting etcd-repo symlink in vendor" |
| rm -f vendor/github.com/coreos/etcd |
| |
| GLIDE_ROOT="$GOPATH/src/github.com/Masterminds/glide" |
| GLIDE_SHA=21ff6d397ccca910873d8eaabab6a941c364cc70 |
| go get -d -u github.com/Masterminds/glide |
| pushd "${GLIDE_ROOT}" |
| git reset --hard ${GLIDE_SHA} |
| go install |
| popd |
| |
| GLIDE_VC_ROOT="$GOPATH/src/github.com/sgotti/glide-vc" |
| GLIDE_VC_SHA=d96375d23c85287e80296cdf48f9d21c227fa40a |
| go get -d -u github.com/sgotti/glide-vc |
| pushd "${GLIDE_VC_ROOT}" |
| git reset --hard ${GLIDE_VC_SHA} |
| go install |
| popd |
| |
| if [ -n "$1" ]; then |
| echo "glide get on $1" |
| matches=$(grep "name: $1" glide.lock) |
| if [ ! -z "$matches" ]; then |
| echo "glide update on $1" |
| glide update --strip-vendor "$1" |
| else |
| echo "glide get on $1" |
| glide get --strip-vendor "$1" |
| fi |
| else |
| echo "glide update on *" |
| glide update --strip-vendor |
| fi; |
| |
| echo "removing test files" |
| glide vc --only-code --no-tests |
| |
| mv vendor cmd/ |
| |
| echo "recreating symlink to etcd" |
| ln -s ../../../../ cmd/vendor/github.com/coreos/etcd |
| |
| echo "done" |
| |