#!/bin/bash

set -o allexport
source ./.env
set +o allexport

# Parse args
while [[ $# > 1 ]]
do
key="$1"

case $key in
    -n|--name)
    APPNAME="$2"
    shift # past argument
    ;;
    -v|--version)
    APPVERSION="$2"
    shift # past argument
    ;;
    -h|--help)
    LIBPATH="$2"
    shift # past argument
    ;;
    *)
            # unknown option
    ;;
esac
shift # past argument or value
done

if [ "" == "${APPNAME}" ] || [ "" == "${APPVERSION}" ]; then
	echo "App name or version number not provided."
else

	# Create matching version tag
	echo "Tag creation"
	git tag ${APPVERSION}

    # Push everything
    echo "Push to repo"
    git push origin master

    # Push tags
    echo "Push tags"
    git push --tags

    # box building
    echo "Box build"
    box build
    mv ${APPNAME}.phar /tmp/${APPNAME}.phar

    echo "Goes to GH pages"
    git checkout gh-pages
    git pull origin gh-pages

    mv /tmp/${APPNAME}.phar downloads/${APPNAME}-${APPVERSION}.phar

    echo "Generating manifest"
    rm manifest.json
    sha1="$(sha1sum downloads/${APPNAME}-${APPVERSION}.phar | awk '{ print $1 }')"

    cat <<EOF > manifest.json
[
  {
    "name": "${APPNAME}.phar",
    "sha1": "${sha1}",
    "url": "${GITHUB_PAGES}/${APPNAME}/downloads/${APPNAME}-${APPVERSION}.phar",
    "version": "${APPVERSION}"
  }
]
EOF

    # Push to GH pages
    git add .
    git commit -m "Publish v${APPVERSION}"
    git push origin gh-pages

    git checkout master

fi