#!/bin/bash
pkgname=$1

if [ "x$pkgname" = "x" ]; then
	echo "Usage:" 1>&2
	echo "  $0 <pkgname>" 1>&2
	exit 1
fi

basedir=$(cd `dirname $0` && pwd)
pkgdir=$basedir/$pkgname

if [ ! -d $basedir ]; then
	echo Package $pkgname does not exist in $basedir. 1>&2
fi

RPMBUILD=$basedir/rpmbuild
SRCPATH=$pkgdir
DISTPATH=$basedir/dist
SRCDISTPATH=$basedir/dist/Source
RPMOPTS=(-ba --define "_topdir ${RPMBUILD}" --define "_sourcedir ${SRCPATH}" --define "debug_package %{nil}")
if [ -z "$SPEC" ]; then
	SPEC=$(basename $(find $pkgdir -name "*.spec" | sort | head -1))
fi
SPEC=${SPEC:-$pkgname.spec}
echo Use SPEC: $SPEC

# $pkgdir/defineファイルがあれば設定を読み込む
if [ -f $pkgdir/define ]; then
	echo "Additional definition from $pkgdir/define ..."
	while read line; do
		echo "- RPMOPTS: Define $line"
		[ -n "$line" ] && RPMOPTS+=(--define "$line")
	done < $pkgdir/define
fi

mkdir -p $RPMBUILD

cd $pkgdir

# rootの場合はbuilddepする
if [ ${EUID:-${UID}} = 0 ]; then
	echo "Resolving BuildRequires for $SPEC ..."
	yum-builddep -y $SPEC
fi

rpmbuild "${RPMOPTS[@]}" $SPEC

if [ "$?" = "0" ]; then
	mkdir -p $DISTPATH
	mkdir -p $SRCDISTPATH
	find $RPMBUILD/RPMS -name "*.rpm" -exec mv {} $DISTPATH \;
	find $RPMBUILD/SRPMS -name "*.rpm" -exec mv {} $SRCDISTPATH \;
	rm -rf $RPMBUILD
else
	echo Error has been occured. 1>&2
fi

