blob: 9fb9ee8415475b25c25cd04e015eb9a51a84013a [file] [log] [blame]
#!/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"