P_BUILD="normal"
P_KEEPDIST="no"
P_FAKEIT="no"
+P_ARCHIVE=""
+P_OFFLINE="no"
+MVN_OPTS=""
verbose() {
if [ "$P_VERBOSE" = "yes" ]; then
verbose "Build type :" $P_BUILD
verbose "Custom configuration:" $P_PROPS
verbose "Keep dist/ folder :" $P_KEEPDIST
+ verbose "Custom achive name :" $P_ARCHIVE
verbose "Fake it :" $P_FAKEIT
+ verbose "maven offline mode :" $P_OFFLINE
}
fail() {
exit 1
}
+makedistname() {
+ if [ -n "$P_ARCHIVE" ]; then
+ DIST="$P_ARCHIVE"
+ fi
+}
+
removedist() {
local KEEP=$1
if [ "$KEEP" = "no" -a -e $DIST ]; then
echo "=== mvn clean ================="
echo "==============================="
echo
- mvn clean || fail "cleaning compilation artifacts"
+ echo mvn ${MVN_OPTS} clean
+ mvn ${MVN_OPTS} clean || fail "cleaning compilation artifacts"
echo
elif [ "$P_BUILD"="fast" ]; then
echo
}
collectdeps() {
- mvn dependency:copy-dependencies && cp target/dependency/*.jar $DIST/lib || fail "collecting dependencies"
+ if [ "$P_BUILD" = "normal" ]; then
+ echo mvn ${MVN_OPTS} dependency:copy-dependencies
+ mvn ${MVN_OPTS} dependency:copy-dependencies
+ fi
+
+ cp target/dependency/*.jar $DIST/lib || fail "collecting dependencies"
}
build() {
echo "=== mvn package ==============="
echo "==============================="
echo
- mvn package -DskipTests && {
+ echo mvn ${MVN_OPTS} package -DskipTests
+ mvn ${MVN_OPTS} package -DskipTests && {
echo
echo "Copying Aquarium classes"
aquariumjar=`find target -type f|egrep "aquarium-[0-9\.]+(-SNAPSHOT)?\.jar"`
echo
echo Copying config files from $CONF_SRC
echo
- cp $CONF_SRC/logback.xml $DIST/conf|| fail "copying logback.xml"
- cp $CONF_SRC/policy.yaml $DIST/conf || fail "copying policy.yaml"
+ cp $CONF_SRC/policy.yaml $DIST/conf || fail "copying policy.yaml"
cp $CONF_SRC/roles-agreements.map $DIST/conf || fail "copying roles-agreements.map"
if [ -n "$P_PROPS" ]; then
}
archive() {
- ARC=$DIST.tar.gz
+ ARC="${DIST}.tar.gz"
+
if [ -e "$ARC" ]; then
echo
echo Removing previous $ARC
+ rm "$ARC"
fi
echo
echo "Creating archive"
- tar zcvf $ARC $DIST/ || fail "creating archive"
+ tar zcvf "$ARC" $DIST/ || fail "creating archive"
echo "File $ARC created succesfully"
echo "Cleaning up"
- ls -al $ARC
+ ls -al "$ARC"
}
usage() {
echo "Usage: $0 [options]"
echo ""
echo "OPTIONS:"
+ echo " -a NAME Use archive NAME."
+ echo " The full name will be NAME.tar.gz."
echo " -b TYPE Use build TYPE. One of 'normal', 'fast'."
echo " 'normal' is the default and can be omitted."
echo " 'fast' means that it will not run mvn clean."
echo " -k Keep generated dist folder."
echo " -h Show this message."
echo " -n As in make -n."
+ echo " -o Use mvn in offline mode (--offline, -o)"
echo " -v Be verbose."
exit 0
}
-while getopts ":b:hkc:nv" opt
+while getopts ":a:b:hkc:nov" opt
do
case $opt in
+ a) P_ARCHIVE=$OPTARG
+ ;;
b) P_BUILD=$OPTARG
;;
c) P_PROPS=$OPTARG
;;
n) P_FAKEIT="yes"
;;
+ o) P_OFFLINE="yes"; MVN_OPTS="-o"
+ ;;
v) P_VERBOSE="yes"
;;
:) ERROR="Option -$OPTARG requires an argument. Aborting..."
fi
verbose_p && \
+makedistname && \
removedist no && \
createdist && \
clean && \