Blob Blame History Raw
#!/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