#!/bin/sh
#
# create RPM directory tree like /usr/src/redhat and set ~.rpmmacros
#
# Written on Thu Jul 27 2000 by Sagami <czs14350@mb.infoweb.ne.jp>
# - first shakedown for Vine
# modify grammer and dir name by Jun Nishii <jun@vinelinux.org>

# requires: rpm > 3.0

CMDNAME=`basename $0`

show_usage () {
  echo "$CMDNAME:"
  echo "create \"rpm\" directory tree like /usr/src/redhat and set ~.rpmmacros"
  echo "usage: $CMDNAME TOP_DIRECTORY"
  exit 1
}

createRPMdir () {
mkdir -p $1/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
mkdir -p $1/RPMS/noarch
case "`uname -m`" in
	*86)
	mkdir -p $1/RPMS/{i386,i586,i686}
	;;
	sparc|sparc64)
	mkdir -p $1/RPMS/{sparc,sparc64}
	;;
	ppc|alpha)
	mkdir -p $1/RPMS/{`uname -m`}
	;;
	# dont know about that :-)
	*)
	mkdir -p $1/RPMS/{`uname -m`}
	;;
esac
}

# arg process
if [ $# = 0 ]; then
  show_usage
elif [ -z $HOME ]; then
  echo "$CMDNAME: \$HOME is not set" && exit 1
elif [ ! -x /bin/rpm ]; then
  echo "$CMDNAME: /bin/rpm not found" && exit 1
elif [ ! -d $1 ]; then
  echo "$CMDNAME: $1 is not directory" && exit 1
elif [ ! -w $1 ]; then
  echo "$CMDNAME: $1 Permission denied" && exit 1
fi

# nan ka hen dakedo iika
pushd $1 > /dev/null 2>&1
TOPDIR=`pwd`
popd > /dev/null 2>&1

TOPDIR=$TOPDIR/rpm
RPMMACROS=$HOME/.rpmmacros

createRPMdir $TOPDIR

# create simplest macros
cat <<EOF>> $RPMMACROS 
### added by $CMDNAME. see /usr/lib/rpm/macros for more.
%_topdir		$TOPDIR
#%__spec_install_post	/usr/lib/rpm/brp-redhat
%packager		$(whoami) <$(whoami)@$(hostname)>
#%vendor		$(uname -n)
#%distribution		$(uname -m)-$(uname -s)
EOF

echo "$CMDNAME: done with $TOPDIR and $RPMMACROS."
exit 0
