#!/bin/sh
#       @(#)genrel	1.2 04/08/92 CERN CN-SW/DC Frederic Hemmer
#
#  Copyright (C) 1990,1991 by CERN/CN/SW/DC
#  All rights reserved
#
#       genrel: generates (partial) release tree
#

TMPDIR=/tmp/DISTTMP
PACKAGES="IOPERF SYSREQ"
SOURCEROOT="/pub/SHIFT"
# Defaults
PACKAGE=
DISTDIR=`pwd`
DISTUSER=
DISTGROUP=
CONFDIR=`pwd`
CONFFILE=
MERGE=

usage()
{
	echo "usage: $1 [-u user] [-g group] [-f conffile] [-c confdir] [-d destdir]"   ;
	echo "       [-m] <PACKAGE>"  ;
	echo "       where <PACKAGE> is one of :";
	echo "       $PACKAGES";
}

#
# Parse arguments
#

while [ x"$1" != x ]; do
    case $1 in
	-x) set -x; shift  ;;
	-u) DISTUSER=$2; shift; shift ;;
	-g) DISTGROUP=$2; shift; shift ;;
	-f) CONFFILE="$CONFDIR/$2"; shift; shift ;;
	-c) CONFDIR=$2;
	    if [ "x$CONFFILE" != "x" ]; then
		CONFFILE="$CONFDIR/`basename $CONFFILE`"
	    fi
	    shift; shift ;;
	-d) DISTDIR=$2; shift; shift ;;
	-m) MERGE="merge"; shift ;;
	-t) TMPDIR=$2; shift; shift ;;
	-help) usage genrel; exit 0;;
	-a) TARFILE=$2; shift; shift ;;
	*) if [ "x$PACKAGE" !=  "x" ]; then
		echo "genrel: Invalid usage: $1 conflicts with $PACKAGE"
		usage genrel; exit 1;
	   fi
	   PACKAGE="$1"; shift;
	   if [ "x$CONFFILE" = "x" ]; then
	       CONFFILE="$CONFDIR/$PACKAGE.files";
	   fi
	   echo "genrel 1.2: generating <$PACKAGE> package" ;;
    esac
done

if [ "-x$PACKAGE" = "-x" ]
    then
	echo "genrel: missing package name"; usage;
	exit 1;
fi

if [ "x$TARFILE" = "x" ]; then
    TARFILE="$PACKAGE.TAR"
fi

if [ ! -f $CONFFILE ]
    then
	echo "genrel: $CONFFILE: No such file";
	exit 1
fi

files=`cpp -P -undef $CONFFILE | sed "s/^$PACKAGE//"`

# Scan <PACKAGE> file for directories
# create directories

if [ -d $TMPDIR ]; then
    echo "Deleting existing temporary directory $TMPDIR";
    rm -r $TMPDIR;
fi

echo "Creating working directory: $TMPDIR"
mkdir $TMPDIR;

echo "Scanning $PACKAGE description file: $CONFFILE"
for i in $files
    do
	dir=`dirname $i`
	if [ "x$MERGE" != "xmerge" ]; then
		if [ ! -d $TMPDIR/$dir ]; then
		    echo "  Creating $TMPDIR/$dir"
		    mkdir $TMPDIR/$dir
		fi
	fi
done

cd $TMPDIR

if [ "x$MERGE" = "xmerge" ]; then
    echo "genrel: warning : merging source subdirectories"
fi

echo "Creating SOURCE files"
for i in $files
    do
	dir=`dirname $i`
	file=`basename $i`
	echo -n "."
	if [ "x$MERGE" != "xmerge" ]; then
	    sccs -d $SOURCEROOT/$dir get -s -p $file > $dir/$file
	    chmod 644 $dir/$file
	else
	    sccs -d $SOURCEROOT/$dir get -s $file
	    chmod 644 $file
	fi
done

echo ""

if [ "x$DISTGROUP" != "x" ]; then
    echo "Setting group ownerships"
    find . -exec chgrp $DISTGROUP {} \; -exec echo -n "." \;
    echo ""
fi

if [ "x$DISTUSER" != "x" ]; then
    echo "Setting ownerships"
    find . -exec chown $DISTUSER {} \; -exec echo -n "." \;
    echo ""
fi

echo "Creating $TARFILE TAR file"

tar cf $TARFILE .
