#!/bin/bash



# Check if required CLI tools are available

if ! [ -x "$(command -v grunt)" ]; then

  echo "Error: grunt-cli is not installed. Please type 'npm install grunt-cli -g' to install" >&2

  exit 1

fi



# Validate arguments

versionBumpType=${1:-patch};



if [ "$versionBumpType" != "major" ] && [ "$versionBumpType" != "minor" ] && [ "$versionBumpType" != "patch" ]; then

  echo "Invalid version bump argument: ${versionBumpType}. Option must be one of the following: major, minor, patch" >&2

  exit 1

else

  echo "Publishing and bumping with ${versionBumpType} version bump"

fi



echo "Running version bump + publish script..."

echo "."

echo "."

echo "Generating /dist and push changes + tags to Github remote 'origin'"

# Checkout master branch

git checkout master

# Version bump

grunt bump-only:"$versionBumpType"

# Generate new dist

grunt prod

# Generate new index.html page

grunt template

# Force add dist contents

git add dist/* --force

# Commit new release tag

grunt bump-commit

# Push commits/tags to master branch on remote 'origin'

git push origin master:master && git push --tags



## Update Github.io page

sh ./scripts/update-gh-pages.sh



## Publish to NPM

echo "."

echo "."

echo "Publishing to NPM"

echo "."

echo "."

npm publish



# Notify script is complete

echo "."

echo "."

echo "Script complete"

echo ""