From 7e97ca59304da5de1f6ed9f93a3c6b04207bc491 Mon Sep 17 00:00:00 2001 From: quietone1 Date: Sat, 24 Sep 2022 02:51:51 +1200 Subject: [PATCH 1/4] Start checking for errors --- tag.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tag.sh b/tag.sh index e68796f..fefe93d 100755 --- a/tag.sh +++ b/tag.sh @@ -1,5 +1,12 @@ #!/bin/bash +# Error exit +# +function error_exit() { + echo -e "${red}FAILURE${reset}" + exit 1 +} + # @param $1 # Replacement pattern # @param $2 @@ -35,9 +42,20 @@ function set_version() { fi } +# Set up variables to make coloured output simple. +red=`tput setaf 1 && tput bold` +green=`tput setaf 2` +reset=`tput sgr0` + +# Get the new tag and exit if it exists. echo -e "Enter the release version (e.g. 9.3.6 or 9.4.0-beta2):" read v +if git rev-parse "$v" >/dev/null 2>&1 ; then + echo -e "\nTag '$v' exists." + error_exit +fi + re="^([0-9]+)\.([0-9]+)\.([0-9]+)(-[A-Za-z0-9]+)?$" if [[ $v =~ $re ]] ; then @@ -57,6 +75,11 @@ if [[ $v =~ $re ]] ; then if [ -z "$p" ] ; then p=$calc_p fi + if ! git rev-parse "$p" >/dev/null 2>&1 ; then + echo -e "\nPrevious tag '$p' does not exist." + error_exit + fi + echo -e "Enter the next stable release (blank for $calc_n):" read n if [ -z "$n" ] ; then @@ -70,6 +93,9 @@ fi echo "Composer installing." rm -rf vendor composer install --no-progress --no-suggest -n -q +if [ "$?" -ne "0" ] ; then + error_exit +fi set_version "$v" "$major" "$minor" @@ -80,16 +106,30 @@ echo "Updating metapackage versions to ${v} and tagging." COMPOSER_ROOT_VERSION="$v" composer update drupal/core* git commit -am "Drupal $v" --no-verify +if [ "$?" -ne "0" ] ; then + error_exit +fi + + git tag -a "$v" -m "Drupal $v" +if [ "$?" -ne "0" ] ; then + error_exit +fi # Revert the composer.lock change in the last commit git revert HEAD --no-commit +if [ "$?" -ne "0" ] ; then + error_exit +fi # Put the version back to dev set_version "${n}-dev" "$major" "$minor" echo "Restoring metapackage versions back to ${major}.${minor}.x-dev" git commit -am "Back to dev." --no-verify +if [ "$?" -ne "0" ] ; then + error_exit +fi notes="\n\n" @@ -99,6 +139,9 @@ if hash pbcopy 2>/dev/null; then else echo -e "$notes" fi + +echo -e "${green}SUCCESS${reset}" + echo -e "To push use:\n" echo -e "git push origin $v ${major}.${minor}.x" echo -e "\n" From 2b94f2286b80bdd69c147664bb185589dc0acad5 Mon Sep 17 00:00:00 2001 From: quietone1 Date: Sat, 24 Sep 2022 03:00:18 +1200 Subject: [PATCH 2/4] Replace exit 1 with error_exit --- tag.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tag.sh b/tag.sh index fefe93d..9fddc68 100755 --- a/tag.sh +++ b/tag.sh @@ -32,8 +32,8 @@ function set_version() { else grep -q "[0-9\.]*-dev" core/lib/Drupal.php if [ ! $? -eq 0 ] ; then - echo -e "Cannot match version constant. The release must be tagged manually." - exit 1 + echo -e "\nCannot match version constant. The release must be tagged manually." + error_exit fi echo -e "\n\n Setting version with sed for 9.0 and earlier \n" @@ -86,8 +86,8 @@ if [[ $v =~ $re ]] ; then n=$calc_n fi else - echo -e "Unrecognized version. The release must be tagged manually." - exit 1 + echo -e "\nUnrecognized version. The release must be tagged manually." + error_exit fi echo "Composer installing." @@ -110,7 +110,6 @@ if [ "$?" -ne "0" ] ; then error_exit fi - git tag -a "$v" -m "Drupal $v" if [ "$?" -ne "0" ] ; then error_exit From cafd7ef8431e04ca27d340399b1a71a4bcf4c128 Mon Sep 17 00:00:00 2001 From: quietone1 Date: Sat, 24 Sep 2022 03:01:32 +1200 Subject: [PATCH 3/4] set_version can fail, do it before composer install --- tag.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tag.sh b/tag.sh index 9fddc68..472435d 100755 --- a/tag.sh +++ b/tag.sh @@ -90,6 +90,8 @@ else error_exit fi +set_version "$v" "$major" "$minor" + echo "Composer installing." rm -rf vendor composer install --no-progress --no-suggest -n -q @@ -97,8 +99,6 @@ if [ "$?" -ne "0" ] ; then error_exit fi -set_version "$v" "$major" "$minor" - # Update the version strings in the metapackages echo "Updating metapackage versions to ${v} and tagging." From 373a4d4989d8823926258851a4512b6ba8ba6d9d Mon Sep 17 00:00:00 2001 From: quietone1 Date: Sat, 24 Sep 2022 03:10:04 +1200 Subject: [PATCH 4/4] Add line break before SUCCESS --- tag.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tag.sh b/tag.sh index 472435d..9637d7e 100755 --- a/tag.sh +++ b/tag.sh @@ -139,7 +139,7 @@ else echo -e "$notes" fi -echo -e "${green}SUCCESS${reset}" +echo -e "\n\n${green}SUCCESS${reset}" echo -e "To push use:\n" echo -e "git push origin $v ${major}.${minor}.x"