| #!/bin/sh |
| ## |
| ## $Id$ |
| ## |
| |
| PROGNAME=`basename "$0"` |
| DIRNAME=`dirname "$0"` |
| |
| warn() { |
| echo "${PROGNAME}: $*" |
| } |
| |
| die() { |
| warn "$*" |
| exit 1 |
| } |
| |
| now() { |
| date +'%H:%M:%S %Z %Y' |
| } |
| |
| begin() { |
| warn "Starting bootstrap build..." |
| } |
| |
| abort() { |
| die "Aborted ($startdate to `now`)" |
| } |
| |
| complete() { |
| if [ "$1" == "0" ]; then |
| warn "Completed ($startdate to `now`)" |
| else |
| die "Failed ($startdate to `now`)" |
| fi |
| } |
| |
| clean() { |
| echo "Cleaning..." |
| |
| if [ "x$BOOTSTRAP_NOCLEAN_REPO" = "x" ]; then |
| rm -rf ~/.m2/repository |
| else |
| echo "Skipping repository cleaning" |
| fi |
| |
| rm -rf "$DIRNAME/thirdparty" |
| mkdir -p "$DIRNAME/thirdparty" |
| |
| for x in `find "$DIRNAME" -name target -type d`; do |
| rm -rf "$x" |
| done |
| } |
| |
| stage() { |
| echo "Starting stage: $1" |
| |
| mvn -Dstage=$1 |
| |
| if [ "$?" != "0" ]; then |
| die "Bootstrap failed in stage $1" |
| fi |
| } |
| |
| specs() { |
| echo "Building Specs..." |
| |
| ( |
| cd "$DIRNAME/thirdparty" |
| |
| svn co http://svn.apache.org/repos/asf/geronimo/specs/trunk specs |
| ( |
| cd specs |
| mvn install |
| |
| if [ "$?" != "0" ]; then |
| die "Bootstrap failed building Specs" |
| fi |
| ) |
| ) |
| } |
| |
| openejb2() { |
| echo "Building OpenEJB2..." |
| |
| ( |
| cd "$DIRNAME/thirdparty" |
| |
| svn co http://svn.codehaus.org/openejb/trunk/openejb2 |
| ( |
| cd openejb2 |
| mvn -Dmaven.test.skip=true install |
| |
| if [ "$?" != "0" ]; then |
| die "Bootstrap failed building OpenEJB" |
| fi |
| ) |
| ) |
| } |
| |
| main() { |
| startdate=`now` |
| |
| trap abort STOP KILL INT ABRT |
| |
| if [ "x$1" != "x" ]; then |
| $* |
| else |
| begin && ( |
| clean |
| specs && \ |
| stage "bootstrap" && \ |
| openejb2 && \ |
| stage "assemble" |
| ) && complete $? |
| fi |
| } |
| |
| main "$@" | 2>&1 tee bootstrap.log |
| |