From f0dd6ea5199457550ce0221bcd288e37fe2421ae Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Wed, 14 Mar 2018 12:58:22 +0000 Subject: [PATCH] update version script (#233) --- scripts/update-version.sh | 139 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100755 scripts/update-version.sh diff --git a/scripts/update-version.sh b/scripts/update-version.sh new file mode 100755 index 000000000..9f8c29eb6 --- /dev/null +++ b/scripts/update-version.sh @@ -0,0 +1,139 @@ +#!/usr/bin/env bash + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +eval JS_API=true +eval GNU=false +eval EXEC_COMPONENT=true +eval DIFFERENT_JS_API=false +eval AUTO=false + +eval libs=( "core" + "content-services" + "process-services" + "insights" ) + +cd `dirname $0` + +prefix="@alfresco\/adf-" + +show_help() { + echo "Usage: update-version.sh" + echo "" + echo "-sj or -sjsapi don't update js-api version" + echo "-vj or -versionjsapi to use a different version of js-api" + echo "-v or -version version to update" + echo "-alpha update last alpha version of js-api and lib automatically" + echo "-beta update beta alpha version of js-api and lib automatically" + echo "-gnu for gnu" +} + +skip_js() { + echo "====== Skip JS-API change version $1 =====" + JS_API=false +} + +last_alpha_mode() { + echo "====== Auto find last ALPHA version =====" + VERSION=$(npm view @alfresco/adf-core@alpha version) + + echo "====== version lib ${VERSION} =====" + + DIFFERENT_JS_API=true + VERSION_JS_API=$(npm view alfresco-js-api@alpha version) + + echo "====== version js-api ${DIFFERENT_JS_API} =====" +} + +last_beta_mode() { + echo "====== Auto find last BETA version =====" + VERSION=$(npm view @alfresco/adf-core@beta version) + + echo "====== version lib ${VERSION} =====" + + DIFFERENT_JS_API=true + VERSION_JS_API=$(npm view alfresco-js-api@beta version) + + echo "====== version js-api ${DIFFERENT_JS_API} =====" +} + +gnu_mode() { + echo "====== GNU MODE =====" + GNU=true +} + +version_change() { + echo "====== New version $1 =====" + VERSION=$1 +} + +version_js_change() { + echo "====== Alfresco JS-API version $1 =====" + VERSION_JS_API=$1 + DIFFERENT_JS_API=true +} + +update_component_dependency_version(){ + for (( j=0; j<${libslength}; j++ )); + do + echo "====== UPDATE DEPENDENCY VERSION of ${prefix}${libs[$j]} to ~${VERSION}======" + + sed "${sedi[@]}" "s/\"${prefix}${libs[$j]}\": \".*\"/\"${prefix}${libs[$j]}\": \"${VERSION}\"/g" $DIR/../package.json + sed "${sedi[@]}" "s/\"${prefix}${libs[$j]}\": \"~.*\"/\"${prefix}${libs[$j]}\": \"~${VERSION}\"/g" $DIR/../package.json + sed "${sedi[@]}" "s/\"${prefix}${libs[$j]}\": \"^.*\"/\"${prefix}${libs[$j]}\": \"^${VERSION}\"/g" $DIR/../package.json + + done +} + +update_component_js_version(){ + echo "====== UPDATE DEPENDENCY VERSION of alfresco-js-api in ${1} to ${2} ======" + PACKAGETOCHANGE="alfresco-js-api" + + sed "${sedi[@]}" "s/\"${PACKAGETOCHANGE}\": \".*\"/\"${PACKAGETOCHANGE}\": \"${2}\"/g" $DIR/../package.json + sed "${sedi[@]}" "s/\"${PACKAGETOCHANGE}\": \"~.*\"/\"${PACKAGETOCHANGE}\": \"${2}\"/g" $DIR/../package.json + sed "${sedi[@]}" "s/\"${PACKAGETOCHANGE}\": \"^.*\"/\"${PACKAGETOCHANGE}\": \"${2}\"/g" $DIR/../package.json + +} + +while [[ $1 == -* ]]; do + case "$1" in + -h|--help|-\?) show_help; exit 0;; + -v|version) version_change $2; shift 2;; + -sj|sjsapi) skip_js; shift;; + -vj|versionjsapi) version_js_change $2; shift 2;; + -gnu) gnu_mode; shift;; + -alpha) last_alpha_mode; shift;; + -beta) last_beta_mode; shift;; + -*) shift;; + esac +done + +if $GNU; then + sedi='-i' +else + sedi=('-i' '') +fi + +if [[ "${VERSION}" == "" ]] +then + echo "Version number required" + exit 1 +fi + +projectslength=${#projects[@]} +libslength=${#libs[@]} + +if $EXEC_COMPONENT == true; then + echo "====== UPDATE ======" + + update_component_dependency_version + + if $JS_API == true; then + + if $DIFFERENT_JS_API == true; then + update_component_js_version ${projects[$i]} ${VERSION_JS_API} + else + update_component_js_version ${projects[$i]} ${VERSION} + fi + + fi +fi