blob: 25f2f6cc3706096fadf42ed71ed51ce230849d59 [file]
#!/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