#!/bin/sh
#---------------------------------------------------------------
# Project         : Mandriva Linux
# Module          : rpm-rebuilder
# File            : rebuild-rpm
# Version         : $Id: rebuild-rpm,v 1.1 2003/08/08 09:09:32 flepied Exp $
# Author          : Frederic Lepied
# Created On      : Thu Aug  7 21:12:06 2003
# Purpose         : recompile a src.rpm with the release incremented
#---------------------------------------------------------------

PATH=/usr/share/rpm-rebuilder:$PATH

# default values
TOPDIR=`rpm --eval '%_topdir'`
TMPDIR=${TMPDIR=$HOME/tmp}

CHANGELOG="rebuild"
USER="`whoami`"
EMAIL="`getent passwd $USER | cut -f5 -d:` <$USER@mandriva.com>"

echo $EMAIL

if [ -r $HOME/.rebuild-rpm ]; then
    . $HOME/.rebuild-rpm
fi

while getopts "e:c:" option; do
    case $option in
	e) EMAIL="$OPTARG";;
	c) CHANGELOG="$OPTARG";;
    esac
done

shift $[ $OPTIND - 1 ]

if [ -z "$EMAIL" -o -z "$CHANGELOG" -o -z "$1" ]; then
    echo "usage: `basename $0` [-e <email>] [-c <changelog>] <src.rpm>" 1>&2
    exit 1
fi

SRC=$1

if [ ! -r "$SRC" ]; then
    echo "unable to access src.rpm file $SRC" 1>&2
    exit 1
fi

SPEC=`rpm2cpio $SRC | cpio -it | fgrep .spec`

rpm -i $SRC

increment-release.py $TOPDIR/SPECS/$SPEC "$EMAIL" "$CHANGELOG" > $TOPDIR/SPECS/$SPEC.new
mv -f $TOPDIR/SPECS/$SPEC.new $TOPDIR/SPECS/$SPEC

echo -n "rebuild log in $TMPDIR/$SPEC.log..."
if rpm -ba $TOPDIR/SPECS/$SPEC > $TMPDIR/$SPEC.log 2>&1; then
    echo done
else
    echo failed
    exit 1
fi

for f in `grep "^Wrote: " $TMPDIR/$SPEC.log | sed 's/Wrote: //'`; do
    echo "$f:"
    rpmlint $f
    case $f in
	*.src.rpm)
	    diffsrcrpm $1 $f;;
	*)
	    diffrpm $f;;
    esac
done

# rebuild-rpm ends here
