#!/bin/sh

#
# tools/rpmbuilder.sh
#
# This file is part of webCDwriter - Network CD Writing.
#
# Copyright (C) 2002-2003 Jörg P. M. Haeger
#
# webCDwriter is free software. See CDWserver.cpp for details.
#

# Thanks to Ramon Casha for the "Self-extracting Archive HOWTO"
# (see http://linux.org.mt/article/selfextract)

PRODUCT=webCDwriter
RPM=rpm
RPMBUILD=rpmbuild
SKIP=`awk '/^__ARCHIVE_FOLLOWS__/ { print NR + 1; exit 0; }' $0`
VERSION=@VERSION@

echo
echo "$PRODUCT $VERSION rpmbuilder"
echo

if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
	echo "Usage: $0 [OPTION]"
	echo
	echo "  --tar.bz2  Create $PRODUCT-$VERSION.tar.bz2"
	echo "  --tar.gz   Create $PRODUCT-$VERSION.tar.gz"
	echo
	exit 0
fi

if [ "$1" = "--tar.bz2" ]; then
	echo -n "Creating $PRODUCT-$VERSION.tar.bz2... "
	tail +$SKIP $0 > $PRODUCT-$VERSION.tar.bz2
	echo "done"
	exit 0
fi

if [ "$1" = "--tar.gz" ]; then
	echo -n "Creating $PRODUCT-$VERSION.tar.gz... "
	tail +$SKIP $0 | bzip2 -cd - | gzip -c - > $PRODUCT-$VERSION.tar.gz
	echo "done"
	exit 0
fi

if [ ! "$1" = "" ]; then
	echo "Invalid option $1"
	exit 1
fi

echo -n "Get the user ID... "
ID=`id -u`
if [ $ID = "0" ]; then
	echo "$ID -> Do not run $0 as root!"
	exit 1
fi
echo $ID

echo -n "Trying to run \"g++ -v\"... "
if g++ -v > /dev/null 2>&1; then
	echo "OK"
else
	echo "failed. Install the \"GNU C++ compiler\"!"
	exit 1
fi

echo -n "Trying to run \"make -v\"... "
if make -v > /dev/null 2>&1; then
	echo "OK"
else
	echo "failed. Install \"GNU Make\"!"
	exit 1
fi

echo -n "Has $RPMBUILD... "
if $RPMBUILD --help > /dev/null 2>&1; then
	echo "yes"
else
	RPMBUILD=$RPM
	echo "no -> will use \"$RPMBUILD -tb\""
fi

echo -n "Trying to run \"$RPM --help\"... "
if $RPM --help > /dev/null 2>&1; then
	echo "OK"
else
	echo "failed"
	exit 1
fi

echo -n "Looking for an already installed $PRODUCT... "
upgrade=0
if $RPM -q $PRODUCT > /dev/null 2>&1; then
	upgrade=1
	$RPM -q $PRODUCT
else
	echo "no"
fi

echo
echo "$PRODUCT $VERSION - building RPM..."
echo

DIR=/tmp/$PRODUCT
rm -rf $DIR/ || exit 1
mkdir -p $DIR/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
tail +$SKIP $0 > $DIR/$PRODUCT-$VERSION.tar.bz2
$RPMBUILD -tb --define "_topdir $DIR/" $DIR/$PRODUCT-$VERSION.tar.bz2 \
	|| exit 1

echo
echo "To do:"
echo
echo "1. Become root (enter \"su\")"
echo
if [ $upgrade = 0 ]; then
	echo "2. Install `basename /tmp/$PRODUCT/RPMS/*/*` by"
	echo "        $RPM -ihv `ls $DIR/RPMS/*/*`"
else
	echo "2. Upgrade to `basename /tmp/$PRODUCT/RPMS/*/*` by"
	echo "        $RPM -Uhv `ls $DIR/RPMS/*/*`"
fi
echo

exit 0

__ARCHIVE_FOLLOWS__
