mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
187 lines
4.3 KiB
Bash
Executable File
187 lines
4.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
eval JS_API=false
|
|
eval GNU=false
|
|
eval DIFFERENT_JS_API=false
|
|
|
|
eval projects=( "cli"
|
|
"core"
|
|
"content-services"
|
|
"process-services"
|
|
"process-services-cloud"
|
|
"insights"
|
|
"testing"
|
|
"extensions"
|
|
"eslint-angular"
|
|
"js-api" )
|
|
|
|
cd `dirname $0`
|
|
|
|
show_help() {
|
|
echo "Usage: update-version.sh"
|
|
echo ""
|
|
echo "-vj or -versionjsapi to use a different version of js-api"
|
|
echo "-v or -version version to update"
|
|
echo "-gnu for gnu"
|
|
}
|
|
|
|
get_next_version() {
|
|
PKG_VERSION=`node -p "require('$1/package.json')".version;`;
|
|
|
|
if [[ $PKG_VERSION =~ [0-9]*\.[0-9]*\.[0-9]*-.* ]]; then
|
|
PKG_VERSION=$PKG_VERSION
|
|
else
|
|
PKG_VERSION=( ${PKG_VERSION//./ } )
|
|
((PKG_VERSION[1]++))
|
|
PKG_VERSION[2]=0
|
|
PKG_VERSION="${PKG_VERSION[0]}.${PKG_VERSION[1]}.${PKG_VERSION[2]}"
|
|
fi
|
|
|
|
if [[ $GH_BUILD_NUMBER != "" ]]; then
|
|
PKG_VERSION=$PKG_VERSION-$GH_BUILD_NUMBER
|
|
fi
|
|
|
|
echo $PKG_VERSION
|
|
}
|
|
|
|
VERSION=`get_next_version $DIR/..`
|
|
JS_API_VERSION=`get_next_version $DIR/../lib/js-api`
|
|
|
|
echo RELEASE_VERSION=$VERSION >> $GITHUB_OUTPUT
|
|
|
|
echo "====== New libs version: $VERSION ====="
|
|
echo "====== New js-api version: $JS_API_VERSION ====="
|
|
|
|
gnu_mode() {
|
|
echo "====== GNU MODE ====="
|
|
GNU=true
|
|
}
|
|
|
|
version_change() {
|
|
echo "====== New version $1 ====="
|
|
VERSION=$1
|
|
}
|
|
|
|
version_js_change() {
|
|
echo "====== Alfresco JS-API version $1 ====="
|
|
JS_API_VERSION=$1
|
|
DIFFERENT_JS_API=true
|
|
}
|
|
|
|
update_library_version() {
|
|
DESTDIR="$DIR/../lib/$1"
|
|
cd $DESTDIR
|
|
|
|
if [[ $1 == "js-api" ]]; then
|
|
echo "====== $1@$JS_API_VERSION ======"
|
|
npm version --allow-same-version --no-git-tag-version --force --loglevel=error $JS_API_VERSION
|
|
else
|
|
echo "====== $1@$VERSION ======"
|
|
npm version --allow-same-version --no-git-tag-version --force --loglevel=error $VERSION
|
|
fi
|
|
}
|
|
|
|
update_dependency_version() {
|
|
sed "${sedi[@]}" "s/\"$1\": \".*\"/\"$1\": \">=$2\"/g" "package.json"
|
|
sed "${sedi[@]}" "s/\"$1\": \"~.*\"/\"$1\": \"~$2\"/g" "package.json"
|
|
sed "${sedi[@]}" "s/\"$1\": \"^.*\"/\"$1\": \"^$2\"/g" "package.json"
|
|
}
|
|
|
|
update_dependencies() {
|
|
for PROJECT in ${projects[@]}
|
|
do
|
|
if [[ $PROJECT == "js-api" ]]; then
|
|
PROJECT="@alfresco\/$PROJECT"
|
|
echo "├─ $PROJECT@$JS_API_VERSION"
|
|
update_dependency_version $PROJECT $JS_API_VERSION
|
|
else
|
|
PROJECT="@alfresco\/adf-$PROJECT"
|
|
echo "├─ $PROJECT@$VERSION"
|
|
update_dependency_version $PROJECT $VERSION
|
|
fi
|
|
done
|
|
}
|
|
|
|
update_library_dependencies() {
|
|
DESTDIR="$DIR/../lib/$1"
|
|
cd $DESTDIR
|
|
update_dependencies $1
|
|
}
|
|
|
|
update_root_dependencies() {
|
|
echo "====== Root package.json ======"
|
|
DESTDIR="$DIR/../"
|
|
cd $DESTDIR
|
|
update_dependencies
|
|
}
|
|
|
|
update_root_js_api_version(){
|
|
echo "====== $DESTDIR/@alfresco/js-api@$1 ======"
|
|
DESTDIR="$DIR/../"
|
|
cd $DESTDIR
|
|
update_dependency_version "@alfresco\/js-api" $1
|
|
}
|
|
|
|
update_component_js_version(){
|
|
echo "====== $1/@alfresco/js-api@$2 ======"
|
|
DESTDIR="$DIR/../lib/$1"
|
|
cd $DESTDIR
|
|
update_dependency_version "@alfresco\/js-api" $2
|
|
}
|
|
|
|
while [[ $1 == -* ]]; do
|
|
case "$1" in
|
|
-h|--help|-\?) show_help; exit 0;;
|
|
-v|version) version_change $2; shift 2;;
|
|
-vj|versionjsapi) version_js_change $2; shift 2;;
|
|
-gnu) gnu_mode; shift;;
|
|
-nextalpha) next_alpha_mode; shift;;
|
|
-*) shift;;
|
|
esac
|
|
done
|
|
|
|
if $GNU; then
|
|
sedi='-i'
|
|
else
|
|
sedi=('-i' '')
|
|
fi
|
|
|
|
if [[ "${VERSION}" == "" ]]
|
|
then
|
|
echo "Version number required"
|
|
exit 1
|
|
fi
|
|
|
|
echo "====== UPDATE COMPONENT LIBRARIES ======"
|
|
cd "$DIR/../"
|
|
|
|
for PROJECT in ${projects[@]}
|
|
do
|
|
update_library_version $PROJECT
|
|
update_library_dependencies $PROJECT
|
|
|
|
if $JS_API == true; then
|
|
if $DIFFERENT_JS_API == true; then
|
|
update_component_js_version $PROJECT $JS_API_VERSION
|
|
else
|
|
update_component_js_version $PROJECT $VERSION
|
|
fi
|
|
fi
|
|
done
|
|
|
|
update_root_dependencies
|
|
|
|
if $JS_API == true; then
|
|
if $DIFFERENT_JS_API == true; then
|
|
update_root_js_api_version $JS_API_VERSION
|
|
else
|
|
update_root_js_api_version $VERSION
|
|
fi
|
|
fi
|
|
|
|
# bump root package.json
|
|
npm version --allow-same-version --no-git-tag-version --force --loglevel=error $VERSION
|
|
|