#!/bin/sh
# This script creates a tar file of all the Go dependencies
# needed to build Heketi. It uses glock to download the
# dependencies, then deletes Heketi and all .git dirs
fail() {
echo $1
exit 1
}
println() {
echo "==> $1"
}
### MAIN ###
if [ -z "$1" ] ; then
echo "$0 <short commit hash>"
exit 1
fi
nodeps=""
if [ "$1" == "-d" ] ; then
nodeps="true"
shift 1
fi
# Place here Heketi commit value
HEKETI_COMMIT=$1
# Globals
BUILDDIR=.build
GODEPS_NAME=heketi-godeps-${HEKETI_COMMIT}.tar.gz
GODEPS=`pwd`/$GODEPS_NAME
HEKETISRC=`pwd`/heketi-${HEKETI_COMMIT}.tar.gz
# Setup build area
if [ -d "BUILDDIR" ] ; then
rm -rf $BUILDDIR
fi
mkdir $BUILDDIR || fail "Unable to create $BUILDDIR"
# Setup env variables
export GOPATH=`pwd`/"$BUILDDIR"
export PATH=$GOPATH/bin:$PATH
# Get sources
println "Get Heketi"
mkdir -p $GOPATH/src/github.com/heketi
( cd $GOPATH/src/github.com/heketi ; git clone https://github.com/heketi/heketi )
if [ -z "$nodeps" ] ; then
println "Get glock"
go get github.com/robfig/glock
fi
# Sync deps
println "Set Heketi to commit hash"
( cd $GOPATH/src/github.com/heketi/heketi ; git checkout $HEKETI_COMMIT )
if [ -z "$nodeps" ] ; then
println "Sync dependencies"
glock sync github.com/heketi/heketi
fi
println "Cleanup"
( cd $GOPATH/src ; find . -type d -name ".git" -o -name ".gitignore" -o -name ".gitmodules" | xargs rm -rf )
# Create Heketi tar file
println "Create $HEKETISRC "
( cd $GOPATH/src/github.com/heketi ; mv heketi heketi-$HEKETI_COMMIT)
( cd $GOPATH/src/github.com/heketi ; tar czf $HEKETISRC heketi-$HEKETI_COMMIT )
( cd $GOPATH/src/github.com/heketi ; rm -rf heketi-$HEKETI_COMMIT )
# Cleanup and Tar up
if [ -z "$nodeps" ] ; then
println "Create $GODEPS "
( cd $GOPATH ; tar czf $GODEPS src )
fi
rm -rf $BUILDDIR