#!/bin/bash

completed=false

function remove_tag {
    if [[ $completed == false ]]
    then
	echo "Build failure. Removing the created tag..."
	echo "$version" > release_message.txt
	echo "" >> release_message.txt
	git cat-file -p release/$version | tail -n +6 >> release_message.txt
	git tag --delete release/$version
	echo "Release message in file release_message.txt"
    fi
}


branch=$(git rev-parse --abbrev-ref HEAD)
if [[ $branch != "master" ]]
then
    echo "Error: You need to checkout the branch 'master' to perform a release."
    exit 1
fi

version=$(find_version)
read -p "Current version is $version. Change it? [Y/n] " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]
then
    create_version
    version=$(find_version)
    trap remove_tag EXIT
fi

release-compile || exit 1
release-package zip || exit 1
release-test $STORM_ROOT/release/storm_mps.zip || exit 1
release-test $STORM_ROOT/release/storm_smm.zip || exit 1
echo "All seems well, uploading the file..."
hash=$(git rev-parse HEAD)
function tar_it {
    cd $STORM_ROOT/release
    tar cz storm_mps.zip storm_smm.zip
}
tar_it | ssh filip-www@fprg.se /home/filip-www/upload-storm.sh $version $hash || { echo "Build failed on the server. Try again!"; exit 1; }

completed=true
echo "Finished! Remember to push tags!"
