#!/bin/bash
# mk-tar-git-rev
########################
# This script will clone or update git master
# and create a tarball using the specified githash.
# Run this in SOURCES:  $ ./mk-tar-git-rev
# ######################

name="qsampler"
url="https://github.com/rncbc/qsampler.git"

# Update or clone git
echo "Please wait - this may take some time ..."
if [[ -d $name ]]; then
cd $name
git pull
cd ..
else
git clone "$url" $name
fi

# Get version, revision and githash from git

gitdesc() {
desc=$(git describe $1)
if [[ $desc =~ "$name" ]]; then
desc=$(echo $desc | sed "s:$name::")
fi
if [[ $desc =~ "_" ]]; then
desc=$(echo $desc | sed 's:_::')
fi
if [[ $desc =~ "_" ]]; then
desc=$(echo $desc | sed 's:_:.:g')
fi
if [[ $desc =~ "-" ]]; then
ver=$(echo $desc | cut -d- -f1 | sed 's/v//')
rev=".$(echo $desc | cut -d- -f2)"
hash=$(echo $desc | cut -d- -f3 | sed 's/g//')
else
ver=$(echo $desc | cut -dv -f2)
rev=".0"
hash=$1
fi
}

cd $name
echo "####################################"
git log --oneline|head -n10
echo "####################################"
gitdesc
echo "Current HEAD is at $desc"
hash=$(git log --oneline|head -n1|cut -d' ' -f1)
read -e -i "$hash" -p "Enter the git hash to use: " hash

git checkout $hash
gitdesc $hash
cd ..

rm -rf $name-$ver$rev

if [[ $rev = ".0" ]]; then
ver=$ver
else
ver=$ver$rev
fi
mv $name $name-$ver

tar -czf "$name-$ver.tar.gz" $name-$ver/ --exclude-vcs-ignores --exclude-vcs && \
echo "#####################################" && \
echo "Written $name-$ver.tar.gz" && \
echo "#####################################"

mv $name-$ver $name
cd $name
git checkout master
cd ..
