#!/bin/bash GREEN='\033[0;32m' RED='\033[0;31m' NO_COLOR='\033[0m' APP_PATH='.' API_FILE_PATH="${APP_PATH}/api/composer.json" FRONTEND_FILE_PATH="${APP_PATH}/frontend/package.json" while true; do read -p "New version: " NEW_VERSION if [[ "${NEW_VERSION}" =~ ^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+*$ ]]; then break else echo -e "${RED}Invalid version${NO_COLOR}\n" fi done echo while true; do echo -e "Version informed: ${GREEN}${NEW_VERSION}${NO_COLOR}" read -p "Do you want to proceed? (y/n) " answer case $answer in [yY] ) break;; [nN] ) exit 1;; * ) echo -e "${RED}Invalid answer${NO_COLOR}\n";; esac done echo -e "\n${GREEN}Fetching origin...${NO_COLOR}" if ! git fetch origin; then exit 1 fi CURRENT_BRANCH=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match) if [ $CURRENT_BRANCH != 'release-hotfix' ]; then echo -e "\n${GREEN}Checking out release-hotfix...${NO_COLOR}" if ! git checkout release-hotfix; then exit 1 fi fi echo -e "\n${GREEN}Pulling on release-hotfix...${NO_COLOR}" if ! git pull; then exit 1 fi echo -e "\n${GREEN}Checking out release-${NEW_VERSION}...${NO_COLOR}" if ! git checkout -b release-$NEW_VERSION; then exit 1 fi API_OLD_VERSION_LINE=$(cat $API_FILE_PATH | grep -i \"version\") FRONTEND_OLD_VERSION_LINE=$(cat $FRONTEND_FILE_PATH | grep -i \"version\") NEW_VERSION_LINE="\"version\": \"${NEW_VERSION}\"," API_NEW_VERSION_LINE=" ${NEW_VERSION_LINE}" FRONTEND_NEW_VERSION_LINE=" ${NEW_VERSION_LINE}" echo -e "\n${GREEN}Changing api version...${NO_COLOR}" sed -i "s/${API_OLD_VERSION_LINE}/${API_NEW_VERSION_LINE}/" $API_FILE_PATH echo -e "${GREEN}Changing frontend version...${NO_COLOR}" sed -i "s/${FRONTEND_OLD_VERSION_LINE}/${FRONTEND_NEW_VERSION_LINE}/" $FRONTEND_FILE_PATH echo -e "\n${GREEN}Commiting...${NO_COLOR}" if ! git commit -am "Altera a versão do sistema para ${NEW_VERSION}"; then exit 1 fi echo while true; do read -p "Do you want to push? (y/n) " answer case $answer in [yY] ) echo -e "\n${GREEN}Pushing on release-${NEW_VERSION}...${NO_COLOR}" if ! git push -u origin release-$NEW_VERSION; then exit 1 fi break ;; [nN] ) break;; * ) echo -e "${RED}Invalid answer${NO_COLOR}\n";; esac done echo while true; do read -p "Do you want to delete the local branch release-${NEW_VERSION}? (y/n) " answer case $answer in [yY] ) echo -e "\n${GREEN}Checking out release-hotfix...${NO_COLOR}" if ! git checkout release-hotfix; then exit 1 fi echo -e "\n${GREEN}Deleting local branch release-${NEW_VERSION}..${NO_COLOR}" if ! git branch -D release-$NEW_VERSION; then exit 1 fi break ;; [nN] ) break;; * ) echo -e "${RED}Invalid answer${NO_COLOR}\n";; esac done echo -e "\n${GREEN}Done!${NO_COLOR}" exit 0