#!/bin/sh #~ Copyright Redshift Software, Inc. 2007 #~ Distributed under the Boost Software License, Version 1.0. #~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) export PATH=/bin:/usr/bin:${PATH} timestamp=`date +%F-%H-%M-%S-%Z` branch=$1 revision=`svn info file:///home/subversion/boost/${branch} | grep '^Revision:' | cut --byte=11-` tag=boost-${1/\/*}-${timestamp} export_dir=boost-$$ # Remove files as listed in stdin, the assumption is that processing # of the file is complete and can be removed. rm_c() { while read f; do rm -f ${f} done } # Generate the export file tree, and incrementally output the files # created. svn_export() { svn export -r ${revision} file:///home/subversion/boost/${branch} ${tag} echo "Revision: ${revision}" > ${tag}/svn_info.txt echo "---- ${tag}/svn_info.txt" } # Create the archive incrementally, deleting files as we are done # adding them to the archive. make_archive() { svn_export \ | cut --bytes=6- \ | star -c -D -to-stdout -d artype=pax list=- 2>/dev/null \ | bzip2 -6 -c \ | tee $1 \ | tar -jtf - \ | rm_c } run() { cd /tmp rm -rf ${export_dir} mkdir ${export_dir} cd ${export_dir} mkfifo out.tbz2 make_archive out.tbz2 & cat out.tbz2 cd /tmp rm -rf ${export_dir} } run_debug() { rm -rf ${export_dir} mkdir ${export_dir} cd ${export_dir} mkfifo out.tbz2 make_archive out.tbz2 & cat out.tbz2 > ../${tag}.tar.bz2 cd .. rm -rf ${export_dir} } run #run_debug