#!/bin/sh
set -e
repo=http://svn.apache.org/repos/asf/subversion
svn=svn
olds=7
while getopts "cd:t:s:o:" flag; do
case $flag in
d) dir="`cd $OPTARG && pwd`" ;; c) clean="1" ;;
t) target="$OPTARG" ;;
s) svn="$OPTARG" ;;
o) olds="$OPTARG" ;;
esac
done
if [ -n "$dir" ]; then cd $dir; else dir="."; fi
if [ -d "roll" ]; then rm -rf roll; fi
mkdir roll
if [ ! -n "$target" ]; then
if [ ! -d "target" ]; then mkdir target; fi
target="target"
fi
abscwd=`cd $dir; pwd`
echo "Will place results in: $target"
head=`$svn info $repo/trunk | grep '^Revision' | cut -d ' ' -f 2`
for i in release.py dist.sh
do
$svn export -r $head $repo/trunk/tools/dist/$i@$head $dir/$i
done
$svn export -r $head $repo/trunk/build/generator/ezt.py@$head $dir/ezt.py
cd roll
echo '----------------building environment------------------'
../release.py --base-dir ${abscwd}/roll build-env
echo '-------------------rolling tarball--------------------'
../release.py --base-dir ${abscwd}/roll roll --branch trunk trunk-nightly $head
cd ..
echo '-------------------moving results---------------------'
./release.py --base-dir ${abscwd}/roll post-candidates trunk-nightly $head \
--target $target
if [ ! -d "$target/dist" ]; then mkdir "$target/dist"; fi
if [ -d "$target/dist/r$head" ]; then rm -r "$target/dist/r$head"; fi
mv $target/deploy $target/dist/r$head
ln -sf "r$head" "$target/dist/current"
ls "$target/dist/r$head" | while read fname; do
ln -sf "r$head/$fname" "$target/dist/$fname"
done
ls -t1 "$target/dist/" | sed -e "1,${olds}d" | while read d; do
rm -rf "$target/dist/$d"
done
if [ -n "$clean" ]; then
echo '--------------------cleaning up-----------------------'
rm -rf roll
fi
echo '------------------------done--------------------------'