#!/bin/bash GREEN='\033[0;32m' RED='\033[0;31m' WHITE='\033[0;37m' RESET='\033[0m' function validateVersion() { echo "" passedVersion=$1 echo -e "${WHITE}-- Validating tag '$passedVersion'...${RESET}" # Todo: validate the version here using a regex; if fail, just exit # ... expect 8.75.0, with no v in front of it if [[ $passedVersion == '' ]]; then echo -e "\n-- Invalid tag. Tags should be structured without v; e.g. 8.57.0" exit fi echo -e "${WHITE}-- Tag valid.${RESET}" echo "" } # Exit script if any command fails (e.g. phpunit) set -e # Require confirmation it's set up corrctly echo echo -e "${WHITE}-- This script is meant to be run after running upgrade.sh, BEFORE committing to Git.${RESET}" while true; do echo -e "${GREEN}-- Is that the current state of your local project?${RESET}" read -p "-- (y/n) " yn case $yn in [Yy]* ) break;; [Nn]* ) exit;; * ) echo "Please answer y or n.";; esac done # Get the version and exit if not valid validateVersion $1 # Create official v prefaced version version="v$1" # Run tests (and bail if they fail) phpunit echo -e "\n${WHITE}-- Tests succeeded.${RESET}" # Branch echo -e "\n${WHITE}-- Creating a Git branch '$version-changes'...${RESET}\n" git checkout -b $version-changes # Add and commit, with "v8.57.0 changes" as the commit name git add -A git commit -m "$version changes" echo echo -e "${WHITE}-- Git committed.${RESET}" # Push git push -u origin $version-changes