#!/bin/sh
#
# (c) Copyright 2002 Hewlett-Packard Development Company, L.P.
#

DetermineFilePath() {
        RC_DIR=/etc/init.d
	DISTDIR=/usr/src/redhat
        if [ -d /usr/src/packages ]; then
                DISTDIR=/usr/src/packages
        fi
}


CreateTarBall() {
	MANIFEST=`cat $MANIFESTFILE | egrep "^/"`
	rm -rf $STAGEDIR
	mkdir -p $STAGEDIR
	for ITEM in $MANIFEST; do 
		if [ -f $ITEM ]; then
			mkdir -p $STAGEDIR/`dirname $ITEM`
		        cp -avf $ITEM $STAGEDIR/$ITEM
		fi
		if [ -d $ITEM ]; then
			mkdir -p $STAGEDIR/$ITEM
	         	cp -avf $ITEM/* $STAGEDIR/$ITEM/.
		fi
	done
	if [ -f /etc/hpasmrc ]; then
		mkdir -p $STAGEDIR/etc
		cp -avf /etc/hpasmrc $STAGEDIR/etc
	fi
	cd $DISTDIR/SOURCES
	tar cvfz $DISTDIR/SOURCES/hpasm.tar.gz hpasm 
	rm -rf $STAGEDIR
} 

CreateSpecFile() {
	cat $SPECTEMPLATE $MANIFESTFILE | sed \
		-e "s/^Version[ 	]*:.*/Version: $VERSION/" \
		-e "s/^Release[ 	]*:.*/Release: $RELEASE/" \
		> $DISTDIR/SPECS/$SPECFILE
	if [ -f /etc/hpasmrc ]; then
		echo "/etc/hpasmrc" >> $DISTDIR/SPECS/$SPECFILE
	fi
        echo "%changelog" >> $DISTDIR/SPECS/$SPECFILE
	echo "* `date +"%a %b %d %Y"` HP Software" >> $DISTDIR/SPECS/$SPECFILE
	echo -e "\t\tCustom Build of hpasm." >> $DISTDIR/SPECS/$SPECFILE
}

# This is to counter NPTL confusion and such
# This does not work on newer releases, like SLES10.
OS_DIST=`cat /opt/compaq/hpasm/distro.txt | cut -d : -f1`
OS_RELE=`cat /opt/compaq/hpasm/distro.txt | cut -d : -f3`
if [ $OS_DIST != "SuSE" -a $OS_RELE != "10" ]; then
export LD_ASSUME_KERNEL=2.4.1
fi

echo "Setting up hpasm sources for custom RPM"


DetermineFilePath
MANIFESTFILE=/opt/compaq/hpasm/etc/hpasm-manifest.txt
SPECTEMPLATE=/opt/compaq/hpasm/etc/hpasm.txt
SPECFILE=hpasm.spec
STAGEDIR=$DISTDIR/SOURCES/hpasm
RPMTOOL=`which rpmbuild`
TARGET=
VERSION=`/bin/rpm -q hpasm --qf %{VERSION} 2>&1`
RELEASE=`/bin/rpm -q hpasm --qf %{RELEASE} 2>&1`
if [ "$RPMTOOL" = "" ]; then
	RPMTOOL=rpm
fi
while [ $# -gt 0 ]; do
        case $1 in
        --version*)
                if echo $1 | grep -q '=' ; then
                        VERSION=`echo $1 | sed 's/^--version=//'`
                else
                        VERSION=$2
			shift
                fi
                ;;

        --release*)
                if echo $1 | grep -q '=' ; then
                        RELEASE=`echo $1 | sed 's/^--release=//'`
                else
                        RELEASE=$2
			shift
                fi
                ;;
        --target*)
                if echo $1 | grep -q '=' ; then
                        TARGET=`echo $1 | sed 's/^--target=//'`
                else
                        TARGET=$2
			shift
                fi
                ;;
	esac
	shift
done
CreateTarBall
CreateSpecFile
if [ -z "$TARGET" ]; then
	TARGET=`rpm -q --specfile $DISTDIR/SPECS/$SPECFILE --queryformat "%{ARCH}\n" | head -n1`
	$RPMTOOL -ba $DISTDIR/SPECS/$SPECFILE 
else 
	$RPMTOOL -ba --target $TARGET $DISTDIR/SPECS/$SPECFILE 
fi
RPMFILES=`rpm -q --specfile $DISTDIR/SPECS/$SPECFILE --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"`
for RPMFILE in $RPMFILES; do
	if [ -f $DISTDIR/RPMS/$TARGET/$RPMFILE.$TARGET.rpm ]; then
		echo "Custom RPM    : $DISTDIR/RPMS/$TARGET/$RPMFILE.$TARGET.rpm"
	else
		echo "Could not find: $DISTDIR/RPMS/$TARGET/$RPMFILE.$TARGET.rpm"
	fi
done
exit 0
