#!/bin/bash if [[ $# -eq 0 ]] ; then echo "Please enter a version number:" read VERSION else VERSION=$1 fi if [[ -z "$VERSION" ]] ; then echo "Sorry, I need a version number!" exit 1 fi #check that the plugin/theme version number matches what you provided. Note if multiple root php files have a "Version" header # line it will only grab the first it finds. Also if a theme and you have a php file in root with "Version" could cause mismatch. HEADERVERSION=`grep -m 1 --include={*.php,style.css} "^Version" * | awk -F' ' '{print $2}' | sed 's/[[:space:]]//g'` if [ "$VERSION" != "$HEADERVERSION" ]; then echo "Version doesn't match the plugin/theme header. Exiting...."; exit 2; fi #get the changelog message echo "Enter your multiline changelog then ctrl-d on a new line when done:" MSG=$(cat) if [[ -z "$MSG" ]] ; then echo "Sorry, I need a changelog for this release!" exit 3 fi #get plugin slug/name from current directory NAME=${PWD##*/} git tag -a $VERSION -m "$MSG" git push origin $VERSION git-archive-all --force-submodules --prefix $NAME/ ~/Desktop/$NAME-$VERSION.zip echo "Tagged in bitbucket and Packaged as $NAME-$VERSION.zip on your desktop."