You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ms...@apache.org on 2018/08/28 09:40:49 UTC
svn commit: r1839418 - in /openoffice/devtools/updateVersion: ./
updateVersion.config updateVersion.sh
Author: mseidel
Date: Tue Aug 28 09:40:48 2018
New Revision: 1839418
URL: http://svn.apache.org/viewvc?rev=1839418&view=rev
Log:
Script to bump up version number
Added:
openoffice/devtools/updateVersion/
openoffice/devtools/updateVersion/updateVersion.config (with props)
openoffice/devtools/updateVersion/updateVersion.sh (with props)
Added: openoffice/devtools/updateVersion/updateVersion.config
URL: http://svn.apache.org/viewvc/openoffice/devtools/updateVersion/updateVersion.config?rev=1839418&view=auto
==============================================================================
--- openoffice/devtools/updateVersion/updateVersion.config (added)
+++ openoffice/devtools/updateVersion/updateVersion.config Tue Aug 28 09:40:48 2018
@@ -0,0 +1,20 @@
+--- file: productversion.mk
+PRODUCTVERSION
+--- file: main/odk/util/makefile.pmk
+PRODUCT_RELEASE
+--- file: srcrelease.xml
+aoo.ver
+--- file: minor.mk
+RSCVERSION
+RSCREVISION=416m1(Build:9790)
+BUILD=9790
+LAST_MINOR=m1
+SOURCEVERSION=AOO416
+--- file: openoffice.lst
+OOOPACKAGEVERSION
+UREPACKAGEVERSION
+PRODUCTVERSION
+ABOUTBOXPRODUCTVERSION
+BASEPRODUCTVERSION
+PACKAGEVERSION
+UPDATEURL
Propchange: openoffice/devtools/updateVersion/updateVersion.config
------------------------------------------------------------------------------
svn:eol-style = native
Added: openoffice/devtools/updateVersion/updateVersion.sh
URL: http://svn.apache.org/viewvc/openoffice/devtools/updateVersion/updateVersion.sh?rev=1839418&view=auto
==============================================================================
--- openoffice/devtools/updateVersion/updateVersion.sh (added)
+++ openoffice/devtools/updateVersion/updateVersion.sh Tue Aug 28 09:40:48 2018
@@ -0,0 +1,249 @@
+#!/bin/bash
+#-------------------------------------------------------------------
+#
+# UPDATE VERSION FOR OO
+#
+# usage: updateVersion.sh <version> <oo_path>
+#
+# params:
+# version - the version to update the files to
+# oo_path - the path to the OO files
+#
+#-------------------------------------------------------------------
+version=$1
+oo_path=$2
+
+logfile=/tmp/updateVersion_$(date +%Y-%m-%d).log
+configfile=$(dirname "$0")/updateVersion.config
+
+exec > >(tee -ia ${logfile}) 2>&1
+echo "***************************************************"
+echo "STARTED UPDATING VERSIONS $(date)"
+echo "***************************************************"
+
+# validate params
+if [[ -z ${version} && -z ${oo_path} ]]
+then
+ echo "Missing both version and OO path. Exiting..."
+ echo "***************************************************"
+ echo "FINISHED UPDATING VERSIONS $(date)"
+ echo "***************************************************"
+ exit
+fi
+if [[ -z ${version} ]]
+then
+ echo "Missing version. Exiting..."
+ echo "***************************************************"
+ echo "FINISHED UPDATING VERSIONS $(date)"
+ echo "***************************************************"
+ exit
+else
+ if [[ ${version} =~ [^[:digit:].] ]]
+ then
+ echo "Invalid version format. It should be in the form x or x.x or x.x.x, where x is either a digit or a number. Exiting..."
+ echo "***************************************************"
+ echo "FINISHED UPDATING VERSIONS $(date)"
+ echo "***************************************************"
+ exit
+ fi
+fi
+
+# validate paths
+if [[ -z ${oo_path} ]]
+then
+ echo "Missing OO path, assuming current working directory. I will look here for files to modify..."
+ oo_path=.
+fi
+if [[ ! -d "${oo_path}/main" ]]
+then
+ echo "${oo_path} does not contain a main subfolder. Exiting..."
+ echo "***************************************************"
+ echo "FINISHED UPDATING VERSIONS $(date)"
+ echo "***************************************************"
+ exit
+fi
+
+# validate config file
+if [[ ! -r ${configfile} ]]
+then
+ echo "${configfile} either does not exist or is not readable. Exiting..."
+ echo "***************************************************"
+ echo "FINISHED UPDATING VERSIONS $(date)"
+ echo "***************************************************"
+ exit
+fi
+
+files=()
+patterns=()
+while read line
+do
+ if [[ ${line} == ---* ]]
+ then
+ filename=`echo ${line} | cut -d':' -f 2`
+ files+=("${filename:1}")
+ if [[ ! -z ${pattern} ]]
+ then
+ patterns+=("${pattern}")
+ pattern=""
+ fi
+ else
+ pattern=${pattern}" "${line}
+ fi
+done < ${configfile}
+patterns+=("${pattern}")
+
+# echo "***************************************************"
+# echo "found ${#files[@]} files and ${#patterns[@]} pattern groups"
+# for (( i=0; i<${#files[@]}; i++ ))
+# do
+# echo "file: ${files[$i]}"
+# echo "patterns: ${patterns[$i]}"
+# done
+
+echo "***************************************************"
+for (( i=0; i<${#files[@]}; i++ ))
+do
+ echo "*********************"
+ if [[ ${files[$i]} == */* ]]
+ then # files given as path, like odk/utils/makefile.pmk
+ filepath=`find ${oo_path} -path "*${files[$i]}"`
+ else # just the filename
+ filepath=`find ${oo_path} -type f -name ${files[$i]}`
+ fi
+ if [[ -z ${filepath} ]]
+ then
+ echo "File not found. Skipping..."
+ else
+ declare -i nbrFilesFound
+ nbrFilesFound=`echo ${filepath} | grep -o "${files[$i]}" | wc -l`
+ readarray -t filepaths <<< "${filepath}"
+ for (( f=0; f<${nbrFilesFound}; f++ ))
+ do
+ filepath=${filepaths[$f]}
+ echo "**********"
+ echo "updating file: ${filepath}"
+ for j in ${patterns[$i]}
+ do
+ # TYPE I substitution:
+ # -> the file is xml, we have name=<pattern> and value=<old_version>
+ # -> old_version will be updated
+ # -> ex. srcrelease.xml
+ if [[ ${files[$i]} == *.xml ]]
+ then
+ readarray -t lines < <(grep -w ${j} ${filepath} | grep -v -e '{' -e '(')
+ for (( s=0; s<${#lines[@]}; s++ ))
+ do
+ echo "line: ${lines[$s]}"
+ newline=`echo ${lines[$s]} | sed -E "s|(value=\")[0-9]+.?[0-9]*.?[0-9]*(\")|\1${version}\2|"`
+ echo "newline: ${newline}"
+ sed -E -i "s|(value=\")[0-9]+.?[0-9]*.?[0-9]*(\")|\1${version}\2|" ${filepath}
+ echo "**********"
+ done
+ #
+ # TYPE II substitution:
+ # -> the pattern is in the form <pattern>=<new_value>
+ # -> replace the old value of <pattern> with the <new_value>
+ # -> ex. minor.mk
+ elif [[ $j == *=* ]]
+ then
+ patt2brepl=`echo $j | cut -d'=' -f 1`
+ patt2replWith=`echo $j | cut -d'=' -f 2`
+ echo "pattern to be replaced: ${patt2brepl}"
+ echo "pattern to replace with: ${patt2replWith}"
+ if [[ ${patt2replWith} == *\(* && ${patt2replWith} == *\)* ]]
+ then
+ replStr=`grep -w ${patt2brepl} ${filepath} | tr '(' '+'`
+ replStr=`echo ${replStr} | tr ')' '+'`
+ sed -E -i "s/(.*)${patt2brepl}.*/\1${replStr}/" ${filepath}
+ echo "temporarily changing file contents replStr ${replStr}"
+ fi
+ readarray -t lines < <(grep -w ${patt2brepl} ${filepath} | grep -v -e '{' -e '(')
+ for (( s=0; s<${#lines[@]}; s++ ))
+ do
+ echo "line: ${lines[$s]}"
+ newline=`echo ${lines[$s]} | sed -E "s|(${patt2brepl} ?=? ?)[a-zA-Z0-9]+.?[a-zA-Z0-9]*.?[a-zA-Z0-9]*[+]*|\1${patt2replWith}|"`
+ echo "newline: ${newline}"
+ sed -E -i "s|(${patt2brepl} ?=? ?)[a-zA-Z0-9]+.?[a-zA-Z0-9]*.?[a-zA-Z0-9]*[+]*|\1${patt2replWith}|" ${filepath}
+ echo "**********"
+ done
+ else
+ #
+ # TYPE III substitution:
+ # -> replace right-side pattern with new value
+ # -> ex. openoffice.lst
+ readarray -t lines < <(grep -w ${j} ${filepath} | grep -v -e '{' -e '(')
+ for (( s=0; s<${#lines[@]}; s++ ))
+ do
+ echo "line: ${lines[$s]}"
+ line=`echo ${lines[$s]} | awk '{$1=$1};1'`
+ patt2brepl=`echo ${line} | cut -d'=' -f 2`
+ if [[ ${patt2brepl} == ${line} ]]
+ then
+ patt2brepl=`echo ${line} | cut -d' ' -f 2`
+ fi
+
+ # search inside words for patterns like aoo412 or AOO4.1.2
+ insStrPatt=`echo ${patt2brepl} | egrep -w "[aA][oO][oO][0-9]+.?[0-9]*.?[0-9]*"`
+ if [[ ${patt2brepl} == ${insStrPatt} ]]
+ then
+ partAOO=`echo ${patt2brepl} | sed -E -n "s|.*([aA][oO][oO])[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/].*|\1|p"`
+ partVer=`echo ${patt2brepl} | sed -E -n "s|.*([aA][oO][oO])([0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]).*|\2|p"`
+ patt2brepl=${partVer}
+ fi
+ echo "patt2brepl: [${patt2brepl}]"
+
+ v0=`echo ${version} | cut -d'.' -f 1`
+ if [[ ${v0} != ${version} ]]
+ then
+ v1=`echo ${version} | cut -d'.' -f 2`
+ v2=`echo ${version} | cut -d'.' -f 3`
+ fi
+
+ p0=`echo ${patt2brepl} | cut -d'.' -f 1`
+ p1=`echo ${patt2brepl} | cut -d'.' -f 2`
+ p2=`echo ${patt2brepl} | cut -d'.' -f 3`
+
+ if [[ ${p0} == ${patt2brepl} ]] # right side is in the form x or xx (one or more numbers only)
+ then
+ declare -i nbr
+ nbr=${#patt2brepl}
+ if [[ ${nbr} -eq 1 ]] # right side is just x
+ then
+ newline=`echo ${line} | sed -E "s|(${partAOO})[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]|\1${v0}|"`
+ else
+ if [[ ${nbr} -eq 2 ]] # right side is xx
+ then
+ if [[ ${p0}+1 -eq ${v0} ]] # right side + 1 is version
+ then
+ newline=`echo ${line} | sed -E "s|(${partAOO})[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]|\1${v0}|"`
+ else
+ newline=`echo ${line} | sed -E "s|(${partAOO})[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]|\1${v0}${v1}|"`
+ fi
+ else
+ newline=`echo ${line} | sed -E "s|(${partAOO})[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]|\1${v0}${v1}${v2}|"`
+ fi
+ fi
+ elif [[ -z ${p2} ]] # right side is in the form x.x
+ then
+ if [[ -n ${v1} ]]
+ then
+ newline=`echo ${line} | sed -E "s|(${partAOO})[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]|\1${v0}.${v1}|"`
+ else
+ newline=`echo ${line} | sed -E "s|(${partAOO})[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]|\1${version}|"`
+ fi
+ else
+ newline=`echo ${line} | sed -E "s|(${partAOO})[0-9]+.?[0-9]*.?[0-9]*[^a-zA-Z/]|\1${version}|"`
+ fi
+
+ echo "newline: ${newline}"
+ echo "**********"
+ sed -E -i "s|${line}|${newline}|" ${filepath}
+ done
+ fi
+ done
+ done
+ fi
+done
+echo "***************************************************"
+echo "FINISHED UPDATING VERSIONS $(date)"
+echo "***************************************************"
Propchange: openoffice/devtools/updateVersion/updateVersion.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: openoffice/devtools/updateVersion/updateVersion.sh
------------------------------------------------------------------------------
svn:executable = *