diff --git a/scripts/updateVersion.sh b/scripts/updateVersion.sh new file mode 100755 index 0000000000..ab8f3aedfa --- /dev/null +++ b/scripts/updateVersion.sh @@ -0,0 +1,81 @@ +#!/bin/bash +set -e + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +echo "The version is of form - VersionMajor.VersionMinor.VersionPatch-VersionMeta" +echo "Let's take 0.3.4-beta as an example. Here:" +echo "* VersionMajor is - 0" +echo "* VersionMinor is - 3" +echo "* VersionPatch is - 4" +echo "* VersionMeta is - beta" +echo "" +echo "Now, enter the new version step-by-step below:" + +version="" + +# VersionMajor +read -p "* VersionMajor: " VersionMajor +if [ -z "$VersionMajor" ] +then + echo "VersionMajor cannot be NULL" + exit -1 +fi +version+=$VersionMajor + +# VersionMinor +read -p "* VersionMinor: " VersionMinor +if [ -z "$VersionMinor" ] +then + echo "VersionMinor cannot be NULL" + exit -1 +fi +version+="."$VersionMinor + +# VersionPatch +read -p "* VersionPatch: " VersionPatch +if [ -z "$VersionPatch" ] +then + echo "VersionPatch cannot be NULL" + exit -1 +fi +version+="."$VersionPatch + +# VersionMeta (optional) +read -p "* VersionMeta (optional, press enter if not needed): " VersionMeta +if [[ ! -z "$VersionMeta" ]] +then + version+="-"$VersionMeta +fi + +echo "" +echo "New version is: $version" + +# update version in all the 6 templates +replace="Version: "$version +fileArray=( + "${DIR}/../packaging/templates/package_scripts/control" + "${DIR}/../packaging/templates/package_scripts/control.arm64" + "${DIR}/../packaging/templates/package_scripts/control.profile.amd64" + "${DIR}/../packaging/templates/package_scripts/control.profile.arm64" + "${DIR}/../packaging/templates/package_scripts/control.validator" + "${DIR}/../packaging/templates/package_scripts/control.validator.arm64" +) +for file in ${fileArray[@]}; do + # get the line starting with `Version` in the control file and store it in the $temp variable + temp=$(grep "^Version.*" $file) + sed -i '' "s%$temp%$replace%" $file +done + +# update version in ../params/version.go +versionFile="${DIR}/../params/version.go" +sed -i '' "s% = .*// Major% = $VersionMajor // Major%g" $versionFile +sed -i '' "s% = .*// Minor% = $VersionMinor // Minor%g" $versionFile +sed -i '' "s% = .*// Patch% = $VersionPatch // Patch%g" $versionFile +sed -i '' "s% = .*// Version metadata% = \"$VersionMeta\" // Version metadata%g" $versionFile +gofmt -w $versionFile + +echo "" +echo "Updating Version Done" + +exit 0