#!/bin/bash

# Little trick script to create an RPM from a finished OpenSG dailybuild
# Official RPM builders would probably kill me for this, but building  
# everything twice is just not an efficient use of time...

if (( $# < 4 ))
then
    echo "Usage: $0 <OpenSG root> <Bin root> <Date> <Conf> <RPM Target Dir>"
    exit 1
fi

OPENSG_ROOT=$1
BIN_ROOT=$2
DATE=$3
CONF=$4
TARGET=$5
TEMP_ROOT=${6:-/usr/tmp}

# Get some configuration data

VERSION=`cat $OPENSG_ROOT/VERSION`
MAJOR=`echo $VERSION | sed -e 's/\..*$//'`

# Create the dummy RPM hierarchy

RPMROOT=${TEMP_ROOT}/opensgdb_rpm

rm -rf  ${RPMROOT}

mkdir ${RPMROOT}

cd ${RPMROOT}
mkdir -p RPMS
mkdir -p SRPMS
mkdir -p BUILD
mkdir -p TEMP
mkdir -p SOURCES
mkdir -p SPECS
cp ${OPENSG_ROOT}/../opensg_dailybuild.${DATE}*source.tgz SOURCES/OpenSG-${VERSION}.tgz

if test -d ${OPENSG_ROOT}/Doc/Code/html
then
    DOCFILES=html
else
    DOCFILES=VERSION
fi

# Make Source RPM

# Replace stuff passed on the command line
cat ${OPENSG_ROOT}/dist/opensg.spec |
sed -e "s/%{version}/$VERSION/g"  -e "s/%{major}/$MAJOR/g" \
    -e "s/%{date}/$DATE/g"  -e "s/%{conf}/$CONF/g" \
    > ${RPMROOT}/SPECS/opensg.spec
echo rpmbuild -v --nodeps --define=\"_topdir ${RPMROOT}\" \
--define=\"version $VERSION\" --define=\"major $MAJOR\" \
--define=\"buildroot ${RPMROOT}/TEMP\" --define=\"binroot ${BIN_ROOT}\" \
--define=\"opensgroot ${OPENSG_ROOT}\" --define=\"date ${DATE}\" \
--define=\"conf ${CONF}\" --define=\"docfiles ${DOCFILES}\" \
-bs ${RPMROOT}/SPECS/opensg.spec
rpmbuild -v --nodeps --define="_topdir ${RPMROOT}" \
--define="version $VERSION" --define="major $MAJOR" \
--define="buildroot ${RPMROOT}/TEMP" --define="binroot ${BIN_ROOT}" \
--define="opensgroot ${OPENSG_ROOT}" --define="date ${DATE}" \
--define="conf ${CONF}" --define="docfiles ${DOCFILES}" \
-bs ${RPMROOT}/SPECS/opensg.spec

echo mv ${RPMROOT}/SRPMS/* ${TARGET}
mv ${RPMROOT}/SRPMS/*  ${TARGET}


# Make binary RPMs

echo rpmbuild -v --nodeps --define=\"_topdir ${RPMROOT}\" \
--define=\"version $VERSION\" --define=\"major $MAJOR\" \
--define=\"buildroot ${RPMROOT}/TEMP\" --define=\"binroot ${BIN_ROOT}\" \
--define=\"opensgroot ${OPENSG_ROOT}\" --define=\"date ${DATE}\" \
--define=\"conf ${CONF}\" --define=\"docfiles ${DOCFILES}\" \
-ba ${OPENSG_ROOT}/dist/opensg_db.spec
rpmbuild -v --nodeps --define="_topdir ${RPMROOT}" \
--define="version $VERSION" --define="major $MAJOR" \
--define="buildroot ${RPMROOT}/TEMP" --define="binroot ${BIN_ROOT}" \
--define="opensgroot ${OPENSG_ROOT}" --define="date ${DATE}" \
--define="conf ${CONF}" --define="docfiles ${DOCFILES}" \
-ba ${OPENSG_ROOT}/dist/opensg_db.spec

echo mv ${RPMROOT}/RPMS/*/* ${TARGET}
mv ${RPMROOT}/RPMS/*/*  ${TARGET}

#rm -rf ${RPMROOT}

