blob: 52baf3b5b3afdf6e0381f2f514ce972f10d20f3f [file] [log] [blame]
#!/bin/sh
set -e
BASE=`pwd`
RC=`xml sel -N m=http://maven.apache.org/POM/4.0.0 -t -v '/m:project/m:properties/m:release.tag' $BASE/pom.xml`
STAGING=`xml sel -N m=http://maven.apache.org/POM/4.0.0 -t -v "/m:project/m:profiles/m:profile[m:id/text() = 'release']/m:distributionManagement/m:repository/m:url" $BASE/pom.xml | sed "s/\\${commons.deployment.protocol}:\/\//$USER@/" | sed "s/\\${release.tag}/$RC/" | sed 's#/#:/#'`
RELEASE=`echo $RC|sed s/-.*//`
echo "creating $RELEASE from $RC at $STAGING"
MAVEN_RELEASE="$BASE/target/maven-dist"
DIST="$BASE/target/dist"
rm -Rf $DIST 2>/dev/null || true
find $BASE/target -name "commons-jci*" -delete
rm -R $MAVEN_RELEASE 2>/dev/null || true
scp -r $STAGING $MAVEN_RELEASE
# build binary dist
LIB="$DIST/bin/commons-jci-$RELEASE-bin/lib"
mkdir -p $LIB 2>/dev/null
JARS=`find $MAVEN_RELEASE -type f -name "*-$RELEASE.jar"`
for A in $JARS ; do
cp $A $LIB
done
cp $BASE/LICENSE.txt $BASE/NOTICE.txt $DIST/bin/commons-jci-$RELEASE-bin/
cd $DIST/bin
tar czvf $BASE/target/commons-jci-$RELEASE-bin.tar.gz .
zip -r $BASE/target/commons-jci-$RELEASE-bin.zip .
cd -
# build source dist
SOURCE=`xml sel -N m=http://maven.apache.org/POM/4.0.0 -t -v "/m:project/m:scm/m:developerConnection" $BASE/pom.xml | sed 's/scn:svn://' | sed "s/trunk/tags\/$RC/"`
mkdir -p $DIST/src 2>/dev/null
cd $DIST/src
svn co $SOURCE commons-jci-$RELEASE-src
tar czvf $BASE/target/commons-jci-$RELEASE-src.tar.gz --exclude .svn --exclude target --exclude dist.sh .
zip -r $BASE/target/commons-jci-$RELEASE-src.zip . -x "*.svn/*" -x "target/*"
# sign
ARTIFACTS="`find $BASE/target -name *.zip -maxdepth 1` `find $BASE/target -name *.tar.gz -maxdepth 1`"
RUNNING=`ps -ax | grep gpg-agent | grep -v grep`
if [ -z "$RUNNING" ]; then
echo "starting gpg-agent..."
gpg-agent --daemon --use-standard-socket > $HOME/.gnupg/.gpg-agent
fi
export GPG_AGENT_INFO="$HOME/.gnupg/S.gpg-agent:4559:1"
for A in $ARTIFACTS ; do
echo $A
rm $A.asc* 2>/dev/null || true
gpg --armor --output $A.asc --detach-sig $A
openssl md5 < $A > $A.md5
openssl sha1 < $A > $A.sha1
done
for A in $ARTIFACTS ; do
echo $A
gpg --verify $A.asc $A
done