| #!/bin/sh | |
| # | |
| # Script to update PTP versions | |
| # | |
| # Usage: update_versions user_id ptp_version [branch] | |
| # | |
| # user_id - user id to use to clone repo | |
| # ptp_version - new version string for PTP and Photran (e.g. "5.0.1") | |
| # branch - alternate branch to use when updating versions | |
| # | |
| # Note: as of 9.1, PTP and Photran versions will be kept in sync | |
| # | |
| # Manual update is required for: | |
| # - the target version in org.eclipse.photran/pom.xml and org.eclipse.ptp/pom.xml | |
| # - MANIFEST.MF in core/org.eclipse.ptp.doc.user | |
| # - pom.xml in core/org.eclipse.ptp.doc.user | |
| # | |
| # A "qualifier" suffix will automatically be added to the version where appropriate | |
| # | |
| # If version numbers are updated on a branch other than master, it is recommended to run | |
| # the command from the master branch: | |
| # | |
| # git merge -s ours origin/branch | |
| # | |
| # to mark the changes as merged. | |
| BRANCH=master | |
| if [ $# -lt 2 ]; then | |
| echo "usage: update_versions user_id ptp_version [branch]" | |
| exit 1 | |
| fi | |
| user_id=$1 | |
| ptp_version=$2 | |
| if [ $# -gt 2 ]; then | |
| BRANCH=$3 | |
| fi | |
| if [ -d fix_ptp_versions ]; then | |
| echo "please remove fix_ptp_versions first" | |
| exit 1 | |
| fi | |
| mkdir fix_ptp_versions | |
| cd fix_ptp_versions | |
| git clone ssh://${user_id}@git.eclipse.org:29418/ptp/org.eclipse.photran.git | |
| (cd org.eclipse.photran && git checkout $BRANCH) | |
| git clone ssh://${user_id}@git.eclipse.org:29418/ptp/org.eclipse.ptp.git | |
| (cd org.eclipse.ptp && git checkout $BRANCH) | |
| git clone ssh://${user_id}@git.eclipse.org:29418/ptp/org.eclipse.ptp.master.git | |
| (cd org.eclipse.ptp.master && git checkout $BRANCH) | |
| PTP_PLUGINS="\ | |
| releng/org.eclipse.ptp.aix \ | |
| releng/org.eclipse.ptp.linux \ | |
| releng/org.eclipse.ptp.macosx \ | |
| releng/org.eclipse.ptp \ | |
| debug/org.eclipse.ptp.debug.sdm \ | |
| core/org.eclipse.ptp.utils \ | |
| core/org.eclipse.ptp.proxy \ | |
| core/org.eclipse.ptp.doc.isv \ | |
| tools/sci/org.eclipse.ptp.sci" | |
| PTP_PRODUCTS="ptp sysmon" | |
| update_feature() { | |
| sed -e "s/^\([ \t]*\)version=\"[0-9]\.[0-9]\.[0-9]\.qualifier\"/\1version=\"$2\.qualifier\"/" < $1/feature.xml > $1/feature.xml.tmp | |
| mv $1/feature.xml.tmp $1/feature.xml | |
| } | |
| update_product() { | |
| sed -e "s/version=\"[0-9]\.[0-9]\.[0-9]/version=\"$2/" < $1.product > $1.product.tmp | |
| mv $1.product.tmp $1.product | |
| } | |
| update_manifest() { | |
| sed -e "s/^Bundle-Version: *[0-9]\.[0-9]\.[0-9]\.qualifier/Bundle-Version: $2.qualifier/" < $1/META-INF/MANIFEST.MF > $1/META-INF/MANIFEST.MF.tmp | |
| mv $1/META-INF/MANIFEST.MF.tmp $1/META-INF/MANIFEST.MF | |
| } | |
| for product in $PTP_PRODUCTS; do | |
| echo "Updating $product..." | |
| (cd org.eclipse.ptp.master/*.${product}-product && \ | |
| update_product $product $ptp_version) | |
| done | |
| for feature in org.eclipse.photran/*-feature; do | |
| echo "Updating $feature..." | |
| update_feature $feature $ptp_version | |
| done | |
| for feature in org.eclipse.ptp/releng/*-feature; do | |
| echo "Updating $feature..." | |
| update_feature $feature $ptp_version | |
| done | |
| for feature in org.eclipse.ptp.master/*-feature; do | |
| echo "Updating $feature..." | |
| update_feature $feature $ptp_version | |
| done | |
| for plugin in $PTP_PLUGINS; do | |
| echo "Updating $plugin..." | |
| update_manifest org.eclipse.ptp/$plugin $ptp_version | |
| done | |
| (cd org.eclipse.photran && \ | |
| mvn versions:set -DnewVersion="${ptp_version}-SNAPSHOT" && \ | |
| mvn org.eclipse.tycho:tycho-versions-plugin:0.14.0:update-pom) | |
| (cd org.eclipse.ptp && \ | |
| mvn versions:set -DnewVersion="${ptp_version}-SNAPSHOT" && \ | |
| mvn org.eclipse.tycho:tycho-versions-plugin:0.14.0:update-pom) | |
| (cd org.eclipse.ptp.master && \ | |
| mvn versions:set -DnewVersion="${ptp_version}-SNAPSHOT" && \ | |
| mvn org.eclipse.tycho:tycho-versions-plugin:0.14.0:update-pom) | |
| find . -name pom.xml.versionsBackup -exec rm -f {} \; | |
| #(cd org.eclipse.photran && git commit -m "Update PTP & Photran versions" && git push) | |
| #(cd org.eclipse.ptp && git commit -m "Update PTP & Photran versions" && git push) | |
| #(cd org.eclipse.ptp.master && git commit -m "Update PTP & Photran versions" && git push) | |
| # | |
| # Cleanup | |
| # | |
| #cd .. | |
| #rm -rf fix_ptp_versions | |
| exit 0 |