#!/bin/bash

svn up || exit 1

if [ $1 ]; then
  echo "Creating version $1"
else
  echo "You must specify a version"
  exit 1
fi

LAST_VERSION=$(ls -t tags/ | head -1)
NEW_VERSION=$1

if [ -d tags/$NEW_VERSION ]; then
  echo "Warning: Version "$NEW_VERSION" already exists"
  exit 1
fi

echo "Copying from "$LAST_VERSION" to "$NEW_VERSION

LOCATION=$(pwd)

cd tags/
cp -r $LAST_VERSION $NEW_VERSION
cd $NEW_VERSION

function cleanup {
  echo "Error! Cleaning up"
  cd $LOCATION
  rm -rf tags/$NEW_VERSION
  exit 1
}

rm -rf lib/* || cleanup

echo "Updating version strings"
find . -type f -name "*.txt" -or -name "*.jpg" -or -name "*.js" | grep -v "/\." | xargs sed -i '' -e "s/"$LAST_VERSION"/"$NEW_VERSION"/g" || cleanup

cd lib/ || cleanup
URL="https://github.com/dimsemenov/PhotoSwipe/archive/v"$NEW_VERSION".tar.gz"

echo "downloading..."
exec wget --quiet $URL -O archive.tar.gz || cleanup

echo "extracting..."
exec tar -xzf archive.tar.gz || cleanup

mv Photo*/dist/* ./ || cleanup
rm -rf Photo* archive.tar.gz || cleanup

echo "commiting"
cd $LOCATION || cleanup
exec svn add "tags/"$NEW_VERSION || cleanup
exec svn commit -m "Version "$NEW_VERSION || cleanup

function warn_and_exit {
  echo "Error!"
  exit 1
}

echo "linking trunk"
exec svn rm trunk || warn_and_exit
exec svn cp "tags/"$NEW_VERSION trunk || warn_and_exit
exec svn commit -m $NEW_VERSION" is now stable" || warn_and_exit

echo "Done!"
