@@ 199,6 199,63 @@ init_java()
pp=${pp:-com.example}
pp=${pp,,}
+ mkdir scripts
+ cat << EOF > scripts/release.sh
+#!/usr/bin/env bash
+# Guide the user through a new release
+# Written by Stephen Cochrane
+
+set -e
+
+ROOT=\$(realpath "\$(dirname "\$0")/..") # This sets the ROOT to root of the repo
+
+cd "\$ROOT" || exit 1
+
+BRANCH=\$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
+
+# Currently, we only want to de releases from the master branch, review this
+# decision later
+if [ ! "\$BRANCH" = master ]
+then
+ echo "Must be on master branch to do a release"
+ exit 1
+fi
+
+# Check valid semvar
+checkSemvar()
+{
+ grep -qP '^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$' <<< "\$1"
+}
+
+read -rp 'Enter next version: ' version
+
+if ! checkSemvar "\$version"
+then
+ echo "Invalid semvar, please ensure the version number follows https://semver.org/ spec."
+ exit 1
+fi
+
+task=install
+
+if grep -q '<distributionManagement>' pom.xml
+then
+ task=deploy
+fi
+
+mvn \$task
+tag=v\$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+
+# bump to the next version
+echo "\$version" | mvn versions:set
+rm pom.xml.versionsBackup # delete the backup pom, this is redundent
+
+git tag "\$tag"
+git add .
+git commit -m "Bump Version: \$version"
+git push --atomic origin master "\$tag"
+EOF
+ chmod +x scripts/release.sh
+
cat << EOF > run.sh
#!/usr/bin/env bash
# java wrapper script