|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/bin/bash
- #
- # Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/
- #
- # Sets the Bubble version number in various source files.
- #
- # Usage:
- #
- # _set_version [ReleaseName x.y.z]
- #
- # ReleaseName : a Bubble release, like Adventure
- # x.y.z : the version number, like 1.5.2
- #
- SCRIPT="${0}"
- SCRIPT_DIR="$(cd "$(dirname "${SCRIPT}")" && pwd)"
- . "${SCRIPT_DIR}"/bubble_common
-
- V_NAME="${1:?no release specified}"
- V_NUMBER="${2:?no version specified}"
-
- if [[ -n "$(echo "${V_NAME}" | awk -F ' ' '{print $2}')" ]] ; then
- die "ReleaseName cannot contain spaces"
- fi
- if [[ "$(echo "${V_NUMBER}" | tr -cd '[[:digit:]].')" != "${V_NUMBER}" ]] ; then
- die "Invalid version number: ${V_NUMBER}"
- fi
-
- function process_pom () {
- V_NUMBER="${1}"
- POM="${2}"
-
- T_FILE=$(mktemp "/tmp/$(basename "${POM}").XXXXXXX")
- FOUND_VERSION=0
- IFS=''
- cat "${POM}" | while read -r line ; do
- if [[ ${FOUND_VERSION} -eq 1 ]] ; then
- echo "${line}" | tr -d '[:digit:].' | sed -e "s/></>${V_NUMBER}</" >> "${T_FILE}"
- FOUND_VERSION=0
- continue
- elif [[ -n "$(echo "${line}" | grep "@@BUBBLE_VERSION@@")" ]] ; then
- FOUND_VERSION=1
- fi
- echo "${line}" >> "${T_FILE}"
- done
- mv "${T_FILE}" "${POM}" || die "Error moving ${T_FILE} -> ${POM}"
- }
-
- # Handle pom.xml files
- cd "${SCRIPT_DIR}/.." || die "Error changing to Bubble main directory"
- process_pom "${V_NUMBER}" pom.xml
- process_pom "${V_NUMBER}" bubble-server/pom.xml
- process_pom "${V_NUMBER}" utils/pom.xml
-
- # Handle META-INF properties file
- VERSION_PROP_FILE="bubble-server/src/main/resources/META-INF/bubble/bubble.properties"
- P_TEMP=$(mktemp /tmp/bubble.properties.XXXXXXX)
- cat "${VERSION_PROP_FILE}" | sed -e "s/bubble.version=.*/bubble.version=${V_NAME} ${V_NUMBER}/" > "${P_TEMP}"
- mv "${P_TEMP}" ${VERSION_PROP_FILE} || die "Error moving ${P_TEMP} -> ${VERSION_PROP_FILE}"
-
- # Handle package.json for web ui
- PKG_JSON="bubble-web/package.json"
- PKG_TEMP=$(mktemp /tmp/package.json.XXXXXXX)
- cat "${PKG_JSON}" | sed -e "s/\"version\".*/\"version\": \"${V_NUMBER}\",/" > "${PKG_TEMP}"
- mv "${PKG_TEMP}" ${PKG_JSON} || die "Error moving ${PKG_TEMP} -> ${PKG_JSON}"
|