blob: 49318dd4cdce02761d38785f6d5c9a207852e568 [file] [log] [blame]
#!/bin/bash
if [ $# -ne 0 ]; then
echo "Usage: DIST_CHECKOUT=... SITE_CHECKOUT=... $0";
echo ""
echo "The DIST_CHECKOUT and SITE_CHECKOUT can also pe placed ~/.config/sling/checkouts.conf"
exit -1;
fi
if [ -f ~/.config/sling/checkouts.conf ]; then
. ~/.config/sling/checkouts.conf
fi
if [ -z $DIST_CHECKOUT ]; then
echo "DIST_CHECKOUT not set";
exit 1;
fi
if [ ! -d $DIST_CHECKOUT ]; then
echo "DIST_CHECKOUT ( $DIST_CHECKOUT ) is not a directory";
exit 1;
fi
if [ -z $SITE_CHECKOUT ]; then
echo "SITE_CHECKOUT not set";
exit 1;
fi
if [ ! -d $SITE_CHECKOUT ]; then
echo "SITE_CHECKOUT ( $SITE_CHECKOUT ) is not a directory";
exit 1;
fi
OBR_FILE=$SITE_CHECKOUT/trunk/content/obr/sling.xml
if [ ! -f $OBR_FILE ]; then
echo "Did not find OBR repository file at ${OBR_FILE}";
exit 1;
fi
echo "Looking for bundles in $DIST_CHECKOUT";
for POM_FILE in $(ls -1 $DIST_CHECKOUT/*.pom); do
# extract PACKAGING from pom ; not perfect
POM_FILE=$(basename $POM_FILE)
PACKAGING=$(cat $DIST_CHECKOUT/$POM_FILE | sed -rn 's/<(\/)?packaging>//pg' | tr -d ' \n');
# default to jar if not present
if [ "x$PACKAGING" = "x" ] ; then
PACKAGING=jar
fi
# OBR only makes sense for bundles
if [ $PACKAGING != "bundle" ]; then
continue;
fi
# get artifact base name, without extension
BASENAME=${POM_FILE%.pom}
JAR_FILE="${BASENAME}.jar"
# find dash which precedes the version
#VERSION_IDX=$(expr index $BASENAME '-[123456789]')
# extract version as 'the first dash followed by a digit'
VERSION=$(echo $BASENAME | grep -Eo "\-[0-9].*")
# clean version to remove the dash
VERSION=${VERSION:1}
VERSION_IDX=$(expr ${#BASENAME} - ${#VERSION})
ARTIFACT_ID="${BASENAME:0:($VERSION_IDX - 1)}"
# check for artifact presence in sling.xml
OBR_KEY="$ARTIFACT_ID/$VERSION"
ALREADY_EXISTS=$(grep -c $OBR_KEY $OBR_FILE)
if [ $ALREADY_EXISTS != 0 ]; then
# no need to process files already included
continue
fi
echo "Adding $OBR_KEY to $OBR_FILE"
mvn -q org.apache.felix:maven-bundle-plugin:deploy-file -Dfile=$DIST_CHECKOUT/$JAR_FILE -DpomFile=$DIST_CHECKOUT/$POM_FILE -DbundleUrl=http://repo1.maven.org/maven2/org/apache/sling/$ARTIFACT_ID/$VERSION/$ARTIFACT_ID-$VERSION.jar -Durl=file://$SITE_CHECKOUT/trunk/content/obr -DprefixUrl=http://repo1.maven.org/maven2 -DremoteOBR=sling.xml
done