#!/bin/sh

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

RPM=rpm
RPMBUILD=rpmbuild

if [ -z "$1" ]; then
	echo "$0 file.tar.gz"
	exit 1
fi

# get the pure name of the product without version and suffix
# (on awk see http://www.introcomp.co.uk/scripts/awk_sed_scripts.html)
PRODUCT=`basename $1 \
	| awk -F\- '{print substr($0,1,length($0)-length($NF)-1)}'`

echo
echo "tar2rpm $PRODUCT"
echo

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}
$RPMBUILD -tb --define "_topdir $DIR/" $1 --nodeps || exit 1
RESULT=`ls $DIR/RPMS/*/*`
RESULT=`basename $RESULT`
mv -iv $DIR/RPMS/*/* .

echo
echo "To do:"
echo
echo "1. Become root (enter \"su\")"
echo
if [ $upgrade = 0 ]; then
	echo "2. Install $RESULT by"
	echo "        $RPM -ihv $RESULT"
else
	echo "2. Upgrade to $RESULT by"
	echo "        $RPM -Uhv $RESULT"
fi
echo
