#!/bin/bash set -e AGGREGATOR_PATH=git://git.eclipse.org/gitroot/platform/eclipse.platform.releng.aggregator.git TAG=2caa8794a57a9479ad642d7f6e3607a020aa36e0 #source http://www.linuxjournal.com/content/normalizing-path-names-bash function normalize() { # Remove all /./ sequences. path=${1//\/.\//\/} # Remove dir/.. sequences. while [[ $path =~ ([^/][^/]*/\.\./) ]] do path=${path/${BASH_REMATCH[0]}/} done } rm -rf R4_platform-aggregator-$TAG rm -rf R4_platform-aggregator-$TAG.tar.bz2 git clone --single-branch --depth 1 $AGGREGATOR_PATH R4_platform-aggregator-$TAG pushd R4_platform-aggregator-$TAG git submodule init for i in $(git submodule | sed -e 's/.* //'); do spath=$(git config -f .gitmodules --get submodule.$i.path) surl=git://git.eclipse.org/gitroot/platform/eclipse.platform.releng.aggregator.git/`git config -f .gitmodules --get submodule.$i.url` normalize $surl git clone --depth 1 $path $spath done echo "Check out done" #comment this line to get a shallow clone. find . -type d -name ".git" | xargs rm rm -rf find . -type f -name *.class -exec rm -rf {} \; find . -name *.jar -type f -exec rm -rf {} \; find . -type f -name *.so -exec rm -rf {} \; find . -type f -name *.dll -exec rm -rf {} \; find . -type f -name *.jnilib -exec rm -rf {} \; popd tar cjf R4_platform-aggregator-$TAG.tar.bz2 R4_platform-aggregator-$TAG