bsdinst.sh   [plain text]


#!/bin/sh

# $XFree86: xc/config/util/bsdinst.sh,v 3.4 2001/01/17 16:39:01 dawes Exp $
#
# This accepts bsd-style install arguments and makes the appropriate calls
# to the System V install.
# $Xorg: bsdinst.sh,v 1.3 2000/08/17 19:41:52 cpqbld Exp $

flags=""
dst=""
src=""
dostrip=""
owner=""
group=""
mode=""
bargs=$*

while [ x$1 != x ]; do
    case $1 in 
	-c) shift
	    continue;;

	-m) flags="$flags $1 $2 "
	    mode="$2"
	    shift
	    shift
	    continue;;

	-o) flags="$flags -u $2 "
	    owner="$2"
	    shift
	    shift
	    continue;;

	-g) flags="$flags $1 $2 "
	    group="$2"
	    shift
	    shift
	    continue;;

	-s) dostrip="strip"
	    shift
	    continue;;

	*)  if [ x$src = x ] 
	    then
		src=$1
	    else
		dst=$1
	    fi
	    shift
	    continue;;
    esac
done

if [ x$src = x ] 
then
	echo "$0:  no input file specified"
	exit 1
fi

if [ x$dst = x ] 
then
	echo "$0:  no destination specified"
	exit 1
fi

if [ -x /usr/ucb/install ]
then
	if [ -d "$dst" ]
	then
		dst=$dst/`basename "$src"`
	fi
	case "$group" in
	"")
		bargs="-g other $bargs"
		;;
	esac
	/usr/ucb/install $bargs
	if [ x$dostrip = xstrip -a -x /usr/bin/mcs ]
	then
		/usr/bin/mcs -d $dst
	fi
	exit 0
fi
	
case "$mode" in
"")
	;;
*)
	case "$owner" in
	"")
		flags="$flags -u root"
		;;
	esac
	;;
esac


# set up some variable to be used later

rmcmd=""
srcdir="."

# if the destination isn't a directory we'll need to copy it first

if [ ! -d $dst ]
then
	dstbase=`basename $dst`
	cp $src /tmp/$dstbase
	rmcmd="rm -f /tmp/$dstbase"
	src=$dstbase
	srcdir=/tmp
	dst="`echo $dst | sed 's,^\(.*\)/.*$,\1,'`"
	if [ x$dst = x ]
	then
		dst="."
	fi
fi


# If the src file has a directory, copy it to /tmp to make install happy

srcbase=`basename $src`

if [ "$src" != "$srcbase" ] && [ "$src" != "./$srcbase" ] 
then
	cp $src /tmp/$srcbase
	src=$srcbase
	srcdir=/tmp
	rmcmd="rm -f /tmp/$srcbase"
fi

# do the actual install

if [ -f /usr/sbin/install ]
then
	installcmd=/usr/sbin/install
elif [ -f /etc/install ]
then
	installcmd=/etc/install
else
	installcmd=install
fi

# This rm is commented out because some people want to be able to
# install through symbolic links.  Uncomment it if it offends you.
# rm -f $dst/$srcbase
(cd $srcdir ; $installcmd -f $dst $flags $src)

if [ x$dostrip = xstrip ]
then
	strip $dst/$srcbase
	if [ -x /usr/bin/mcs ]
	then
		/usr/bin/mcs -d $dst/$srcbase
	fi
fi

if [ x$mode != x ]
then
	chmod $mode $dst/$srcbase
fi

# and clean up

$rmcmd