#! /bin/sh
# Mark Moraes <moraes@csri.toronto.edu>, Feb 1, 1989 
# $Id: xerionInstall,v 1.2 92/07/15 11:33:19 drew Exp $
PATH=:/usr/bin:/bin
export PATH
usage="Usage: $0 [-c] [-s] [-m perms] [-o owner] [-g group] file1 file2
	$0 [-c] [-s] [-m perms] [-o owner] [-g group] file1 ... dir
	$0 -d [-m perms] [-o owner] [-g group] dir"
copyflag=
stripflag=
mode=0755
dirflag=
owner=
group=

# for old style Unix boxes (or HPUX) we have to use getopt
if sh -c "which getopt" 1> /dev/null 2>&1 ; then
	set -- `getopt csdm:o:g:i: $*`
	while [ $# -gt 0 ]; do
		case $1 in
		-c) 	copyflag=y
			shift
			;;
		-s) 	stripflag=y
			shift
			;;
		-d) 	dirflag=-d
			shift
			;;
		-m) 	mode=$2
			shift 2
			;;
		-o) 	owner=$2
			shift 2
			;;
		-g) 	group=$2
			shift 2
			;;
	        -i) 	shift
			;;
		--)	shift
			break
			;;
		esac
	done
else
	while getopts csdm:o:g:i: i
	do
		case $i in
		c) copyflag=y;;
		s) stripflag=y;;
		d) dirflag=-d;;
		m) mode=$OPTARG;;
		o) owner=$OPTARG;;
		g) group=$OPTARG;;
	        i) ;;
		esac
	done
	shift `expr $OPTIND - 1`
fi

if [ $# -eq 0 ]; then
	echo $usage
	exit 2
fi
if [ x$dirflag != x -a $# -eq 1 ]; then
	dir=$1
	mkdir -p $dir
	test -n "$owner" && chown $owner $dir
	test -n "$group" && chgrp $group $dir
	chmod $mode $dir
	exit 0
elif [ x$dirflag != x ]; then
	echo $0: Only one argument if "-d" is given
	echo $usage
	exit 3
fi
for i
do
	dest=$i
done
if [ $# -gt 2 -a -d $dest ]; then
	cp $*
	(cd $dest;
		for i
		do
			if [ $dest != $i ]; then
				j=`basename $i`
				test -n "$owner" && chown $owner $j
				test -n "$group" && chgrp $group $j
				chmod $mode $j
				if [ x$stripflag != x ]; then
					strip $j
				fi
			fi
		done
	)
elif [ $# -gt 2 ]; then
	echo $0: last argument must be a directory if installing multiple files
	exit 4
fi
if [ $# -ne 2 ]; then
	echo $usage
	exit 5
fi
if [ -d $dest ]; then
	dest=$dest/`basename $1`
fi
if [ -f $dest ]; then
	rm -f $dest
fi
cp $1 $dest
test -n "$owner" && chown $owner $dest
test -n "$group" && chgrp $group $dest
chmod $mode $dest
if [ x$stripflag != x ]; then
	strip $dest
fi
exit 0
