blob: b167ab31048b0eecdec656ee52b818fe527ba08f [file] [log] [blame]
#!/bin/sh
#
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#
set -e
repo=http://svn.apache.org/repos/asf/subversion
svn=svn
olds=7
# Parse our arguments
while getopts "cd:t:s:o:" flag; do
case $flag in
d) dir="`cd $OPTARG && pwd`" ;; # abspath
c) clean="1" ;;
t) target="$OPTARG" ;;
s) svn="$OPTARG" ;;
o) olds="$OPTARG" ;;
esac
done
# Setup directories
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"
# get youngest
head=`$svn info $repo/trunk | grep '^Revision' | cut -d ' ' -f 2`
# Get the latest versions of the rolling scripts
for i in release.py dist.sh
do
$svn export --force -r $head $repo/trunk/tools/dist/$i@$head $dir/$i
done
# We also need ezt
$svn export --force -r $head $repo/trunk/build/generator/ezt.py@$head $dir/ezt.py
# Create the environment
cd roll
echo '----------------building environment------------------'
../release.py --verbose --base-dir ${abscwd}/roll build-env trunk-nightly
# Roll the tarballs
echo '-------------------rolling tarball--------------------'
../release.py --verbose --base-dir ${abscwd}/roll roll --branch trunk trunk-nightly $head
cd ..
# Create the information page
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 roll/deploy $target/dist/r$head
# Some static links for the most recent artifacts.
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
# Clean up old results
ls -t1 "$target/dist/" | sed -e "1,${olds}d" | while read d; do
rm -rf "$target/dist/$d"
done
# Optionally remove our working directory
if [ -n "$clean" ]; then
echo '--------------------cleaning up-----------------------'
rm -rf roll
fi
echo '------------------------done--------------------------'