#!/usr/bin/env bash

set -e

#release.sh 1.8.2
#creates a libretime folder with a "1.8.2" suffix
#creates tarballs with a "1.8.2" suffix

#release.sh 1.8.2 RC
#creates a libretime folder with a "1.8.2-RC" suffix
#creates tarballs with a "1.8.2-RC" suffix

#release.sh 1.8.2-RC
#creates a libretime folder with a "1.8.2-RC" suffix
#creates tarballs with a "1.8.2-RC" suffix

if [ $# == 0 ]; then
  echo "Zero arguments"
  exit
elif [ $# == 1 ]; then
  suffix=$1
  # version=$1
else
  suffix=$1-$2
  # version=$1
fi

# dir=$(dirname "$(readlink -f "$0")")
gitrepo=$(readlink -f ./../../)

echo "Creating tarball for LibreTime ${suffix}."

target=/tmp/libretime-${suffix}
target_file=${gitrepo}/build/libretime-${suffix}.tar.gz

rm -rf $target
rm -f $target_file
echo -n "Cloning temporary git repo..."
git clone --quiet --depth=1 file://$gitrepo $target
echo " Done"

echo -n "Creating VERSION file for ${suffix}..."
echo -n "${suffix}" > ${target}/VERSION
echo " Done"

pushd $target

echo -n "Checking out tag ${suffix}..."
git fetch --quiet --tags
git checkout --quiet tags/${suffix}
echo " Done"

echo -n "Running composer install..."
composer install --quiet --no-dev --ignore-platform-reqs
echo " Done"

popd

#echo "Minimizing LibreTime Javascript files..."
#cd $dir
#find $target/airtime_mvc/public/js/airtime/ -iname "*.js" -exec bash -c 'echo {}; jsmin/jsmin < {} > {}.min' \;
#find $target/airtime_mvc/public/js/airtime/ -iname "*.js" -exec mv {}.min {} \;
#echo "Done"

pushd /tmp/
find libretime-${suffix} -type f -exec dos2unix {} \;
echo -n "Creating tarball..."
tar -czf $target_file \
  --owner=root --group=root \
  --exclude-vcs \
  --exclude .zfproject.xml \
  --exclude .gitignore \
  --exclude .gitattributes \
  --exclude .travis.yml \
  --exclude travis \
  --exclude dev_tools \
  --exclude vendor/phing \
  --exclude vendor/simplepie/simplepie/tests \
  libretime-${suffix}
echo " Done"
popd

echo "Output file available at $target_file"
