diff options
author | Junichi Uekawa <dancer@dancer64.netfort.gr.jp> | 2007-06-07 07:50:37 +0900 |
---|---|---|
committer | Junichi Uekawa <dancer@dancer64.netfort.gr.jp> | 2007-06-07 07:50:37 +0900 |
commit | df5d8bf2689c623b90fa908d843ba9d6fff3529f (patch) | |
tree | 1d20dbda72474038a79dd52426a87e016e297614 /examples/rebuild/buildall | |
parent | 00c2811e453885c630f5626331ba5a6f19c74b7b (diff) | |
download | pbuilder-df5d8bf2689c623b90fa908d843ba9d6fff3529f.tar pbuilder-df5d8bf2689c623b90fa908d843ba9d6fff3529f.tar.gz |
* add example rebuild script from Bastian Venthur
(http://people.debian.org/~venthur/stuff/2007-06-rebuild/)
Diffstat (limited to 'examples/rebuild/buildall')
-rwxr-xr-x | examples/rebuild/buildall | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/examples/rebuild/buildall b/examples/rebuild/buildall new file mode 100755 index 0000000..52a68d5 --- /dev/null +++ b/examples/rebuild/buildall @@ -0,0 +1,75 @@ +#!/bin/sh +# +# rebuild - builds every package in a clean cowbuilder environment +# Usage: rebuild list +# +# Copyright (C) 2007 Bastian Venthur +# +# License: GPL 2 +# +# Version: 2007-06-06 +# * Included many patches from Gregor Herrmann +# Version: 2007-02-21 +# * Initial release + + +LIST=$1 +DIST=${2:-testing} +MIRROR=http://ftp.at.debian.org + +LOGDIR=$(pwd)/"logs" +BUILDDIR=$(pwd)/"build" +BASEPATH="/var/cache/pbuilder/testing-base.cow" + +# source lsb-functions for nice log messages +. /lib/lsb/init-functions + +function build { + PACKAGE=$1 + + mkdir -p $BUILDDIR/$PACKAGE + cd $BUILDDIR/$PACKAGE + + #apt-get source $PACKAGE -t $DIST > /dev/null 2> $LOGDIR/.$PACKAGE + G=$(grep-dctrl -S -n -s Directory,Version $PACKAGE ../../Sources) + set -- $G + DIR=$1 VER=$2 + dget -x ${MIRROR}/debian/${DIR}/${PACKAGE}_${VER}.dsc > /dev/null 2> $LOGDIR/.$PACKAGE + + cd $(find . -type d ! -name .) + mkdir -p $BUILDDIR/$PACKAGE/result + pdebuild --pbuilder cowbuilder --use-pdebuild-internal --buildresult $BUILDDIR/$PACKAGE/result/ -- --basepath $BASEPATH >> $LOGDIR/.$PACKAGE 2>&1 + + if [ $? -eq 0 ]; then + mv $LOGDIR/.$PACKAGE $LOGDIR/succeeded-$PACKAGE + log_action_end_msg 0 + else + mv $LOGDIR/.$PACKAGE $LOGDIR/failed-$PACKAGE + log_action_end_msg 1 + fi + + cd $BUILDDIR + rm -rf $PACKAGE +} + + +[ -d $LOGDIR ] || mkdir $LOGDIR + +if [ ! -e "$LIST" ]; then + log_failure_msg "No Buildlist given." + exit 1 +fi + +while read package; do + # Create Lockfile (ln -s is atomic and fails if link already exists) + ln -s $package $LOGDIR/.$package.lock 2> /dev/null || continue + + # Build the package if not already built + if [ ! -e $LOGDIR/succeeded-$package -a ! -e $LOGDIR/failed-$package ]; then + log_action_begin_msg "$(date +%F\ %T) Building $package " + build $package + fi + + # Remove Lockfile + rm -f $LOGDIR/.$package.lock +done < $LIST |