Created
January 25, 2018 18:20
-
-
Save robstryker/45472a533e887949e638cb34a80d37ed to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -xe | |
# see also https://gist.github.com/nickboldt/6afc71826e82518c5e7b7d3c3fdcc4f3 | |
# merge sse repos into a single repo | |
START_TIME=`date +%s` | |
# work in a tempdir. The tmp-dir name is something like /home/user/tmp/this_scripts_name/ | |
tmpdir=~/tmp/${0/.sh/.tmp} | |
tmpdirCache=~/tmp/${0/.sh/.tmp}_cache | |
#rm -fr ${tmpdir} | |
mkdir -p ${tmpdir} | |
cd ${tmpdir} | |
# in case we have another alias for mv, like 'mv -i' | |
alias mv=mv | |
alias rm=rm | |
# set our local pull command depending on git version | |
verlte() { | |
[ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] | |
} | |
verlt() { | |
[ "$1" = "$2" ] && return 1 || verlte $1 $2 | |
} | |
GIT_VERSION=`git version | head -1 | cut -f 3 -d " "` | |
verlte $GIT_VERSION 2.9.0 && ALLOW_PULL_FLAG=false || ALLOW_PULL_FLAG=true | |
if $ALLOW_PULL_FLAG | |
then | |
LOCAL_PULL_CMD="git pull --no-edit --allow-unrelated-histories --no-rebase --rebase=false" | |
else | |
LOCAL_PULL_CMD="git pull --no-edit --no-rebase --rebase=false" | |
fi | |
MVN="mvn clean install -fae -e -Dplatform-repo.url=http://download.eclipse.org/eclipse/updates/4.8-I-builds/" | |
# Make sure different users with different settings will run the script as intended | |
gitBranchSettings () | |
{ | |
git config branch.autosetuprebase never | |
git config branch.autosetupmerge false | |
git config branch.master.rebase false | |
} | |
# handle changes to parent pom | |
if [[ ! -d webtools.releng.aggregator ]]; then git clone http://git.eclipse.org/gitroot/webtools/webtools.releng.aggregator.git; fi | |
pushd webtools.releng.aggregator/wtp-parent | |
gitBranchSettings | |
git reset --hard origin/master | |
${MVN} | |
popd | |
#git clone http://git.eclipse.org/gitroot/webservices/webtools.webservices.git | |
# Use my branch for now TODO !!! | |
git clone [email protected]:robstryker/webtools.webservices.git | |
git clone http://git.eclipse.org/gitroot/webservices/webtools.webservices.jaxws.git | |
git clone http://git.eclipse.org/gitroot/webservices/webtools.webservices.axis2.git | |
# Make all history of axis2 appear as if it was in a subfolder named 'axis2' | |
cd webtools.webservices.axis2 | |
git filter-branch --tree-filter "mkdir axis2; mv axis2 ../tmp; mv * ../tmp/axis2; mv ../tmp/axis2 ./axis2" HEAD | |
rm .project .gitignore | |
git commit -a -m "Removing files likely to clash on merge" --signoff | |
cd ../ | |
# Make all history of jaxws appear as if it was in a subfolder named 'jaxws' | |
cd webtools.webservices.jaxws/ | |
git filter-branch --tree-filter "mkdir jaxws; mv jaxws ../tmp; mv * ../tmp/jaxws; mv ../tmp/jaxws ./jaxws" HEAD | |
rm .project .gitignore | |
git commit -a -m "Removing files likely to clash on merge" --signoff | |
cd ../ | |
cd webtools.webservices | |
# Merge the 3 repos into one | |
$LOCAL_PULL_CMD ../webtools.webservices.jaxws | |
$LOCAL_PULL_CMD ../webtools.webservices.axis2 | |
# Move all the original ws folders into a new folder named core | |
mkdir core | |
git mv bundles core/bundles | |
git mv docs core/docs | |
git mv features core/features | |
git mv tests core/tests | |
git commit -a -m "Move all files into core subdirectory" --signoff | |
# Change the root pom to just have 4 modules: core jaxws axis2 and site | |
cat pom.xml | head -n 94 > pom2.xml | |
echo " <module>core</module>" >> pom2.xml | |
echo " <module>jaxws</module>" >> pom2.xml | |
echo " <module>axis2</module>" >> pom2.xml | |
cat pom.xml | tail -n 4 >> pom2.xml | |
mv pom.xml core/pom.xml | |
mv pom2.xml pom.xml | |
# Change the root pom's name to webservices.parent | |
cat pom.xml | sed 's/org.eclipse.webtools.webservices<\/artifactId>/org.eclipse.webtools.webservices.parent<\/artifactId>/g' > pom2.xml | |
mv pom2.xml pom.xml | |
# Remove all the 'repository' stuff and plugins in core/pom.xml | |
cd core | |
cat pom.xml | head -n 34 > pom2.xml | |
cat pom.xml | tail -n 75 >> pom2.xml | |
# Change the parent reference in core/pom.xml | |
cat pom2.xml | sed 's/groupId>org.eclipse</groupId>org.eclipse.webtools.webservices</g' | sed 's/artifactId>wtp-parent</artifactId>org.eclipse.webtools.webservices.parent</g' | grep -v "relativePath" | grep -v "site<" > pom3.xml | |
mv pom3.xml pom.xml | |
rm pom2.xml | |
cd ../ | |
# Change the parent reference in axis2/pom.xml | |
cd axis2 | |
cat pom.xml | sed 's/groupId>org.eclipse</groupId>org.eclipse.webtools.webservices</g' | sed 's/artifactId>wtp-parent</artifactId>org.eclipse.webtools.webservices.parent</g' | grep -v "relativePath" > pom2.xml | |
mv pom2.xml pom.xml | |
cd ../ | |
# Change the parent reference in jaxws/pom.xml | |
cd jaxws | |
cat pom.xml | sed 's/groupId>org.eclipse</groupId>org.eclipse.webtools.webservices</g' | sed 's/artifactId>wtp-parent</artifactId>org.eclipse.webtools.webservices.parent</g' | grep -v "relativePath" > pom2.xml | |
mv pom2.xml pom.xml | |
cd ../ | |
# Change the parent reference in site/pom.xml | |
cd site | |
cat pom.xml | sed 's/groupId>org.eclipse</groupId>org.eclipse.webtools.webservices</g' | sed 's/artifactId>wtp-parent</artifactId>org.eclipse.webtools.webservices.parent</g' | grep -v "relativePath" > pom2.xml | |
mv pom2.xml pom.xml | |
cat <<EOT >> test.txt | |
<?xml version="1.0" encoding="UTF-8"?> | |
<site> | |
<feature id="org.eclipse.wst.ws_wsdl15.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.wst.ws_ui.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.wst.ws_core.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.wst.ws_sdk.feature"><category name="webservices-sdk"/></feature> | |
<feature id="org.eclipse.wst.ws_userdoc.feature"><category name="webservices-sdk"/></feature> | |
<bundle id="org.eclipse.jst.ws.axis.infopop"><category name="webservices-sdk"/></bundle> | |
<bundle id="org.eclipse.jst.ws.consumption.infopop"><category name="webservices-sdk"/></bundle> | |
<bundle id="org.eclipse.jst.ws.infopop"><category name="webservices-sdk"/></bundle> | |
<bundle id="org.eclipse.wst.command.env.infopop"><category name="webservices-sdk"/></bundle> | |
<bundle id="org.eclipse.wst.ws.infopop"><category name="webservices-sdk"/></bundle> | |
<feature id="org.eclipse.wst.ws_tests.feature"><category name="webservices-tests"/></feature> | |
<feature id="org.eclipse.jst.ws.axis2tools.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.jst.ws.axis2tools_sdk.feature"><category name="webservices-sdk"/></feature> | |
<feature id="org.eclipse.jst.ws.cxf.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.jst.ws.cxf_sdk.feature"><category name="webservices-sdk"/></feature> | |
<feature id="org.eclipse.jst.ws.cxf_tests.feature"><category name="webservices-tests"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws.assembly.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws.assembly_sdk.feature"><category name="webservices-sdk"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws.assembly_tests.feature"><category name="webservices-tests"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws.dom.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws.dom_sdk.feature"><category name="webservices-sdk"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws.dom_tests.feature"><category name="webservices-tests"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws.feature"><category name="webservices"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws_sdk.feature"><category name="webservices-sdk"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws_tests.feature"><category name="webservices-tests"/></feature> | |
<feature id="org.eclipse.jst.ws.jaxws_userdoc.feature"><category name="webservices"/></feature> | |
<!-- javaee-web features --> | |
<feature id="org.eclipse.jst.doc.user.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.enterprise_core.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.enterprise_sdk.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.enterprise_tests.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.enterprise_ui.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.enterprise_userdoc.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.web_core.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.web_sdk.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.web_tests.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.web_ui.feature"><category name="javaee-web"/></feature> | |
<feature id="org.eclipse.jst.web_userdoc.feature"><category name="javaee-web"/></feature> | |
<category-def name="webservices" label="WTP Web Services"/> | |
<category-def name="webservices-sdk" label="WTP Web Services SDK"/> | |
<category-def name="webservices-tests" label="WTP Web Services Tests"/> | |
<category-def name="javaee-web" label="WTP Web Services - JavaEE Enterprise / Web Features"/> | |
</site> | |
EOT | |
mv test.txt category.xml | |
cd ../ | |
git commit -a -m "Fix all poms.xml" --signoff | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment