This is bsdinst.sh in view mode; [Download] [Up]
#! /bin/sh
#
# This accepts bsd-style install arguments and executes them
#
die()
{
echo "$*" 1>&2
exit 1
}
dest=""
src=""
strip="false"
owner=""
group=""
mode="755"
while [ -n "$1" ]
do
case $1 in
-c) ;;
-m) mode="$2"
shift
;;
-o) owner="$2"
shift
;;
-g) group="$2"
shift
;;
-s) strip="true"
;;
-*) die "Illegal option"
;;
*) if [ -z "$2" ]
then
dest="$1"
break
fi
src="$src $1"
if [ ! -f "$1" -o ! -r "$1" ]
then
die "$1: file does not exist or is not readable"
fi
;;
esac
shift
done
[ -n "$dest" ] || die "No destination specified"
[ -n "$src" ] || die "No file specified"
if [ ! -d "$dest" ]
then
count=0
for i in $src
do
count=`expr $count + 1`
done
if [ "$count" -eq 1 ]
then
parent=`dirname $dest`
if [ -d "$parent" ]
then
newname=`basename $dest`
dest=$parent
fi
fi
[ -n "$newname" ] || die "$dest: No such directory"
fi
# Here's where the real work happens. Note that on some systems, chown
# clears SUID and SGID bits for non-superusers. Thus, the chmod has to
# follow chown. However, under System V, you can not chmod SUID or SGID
# permissions unless you are the owner or superuser.
# If you are in doubt, "su" first!
for i in $src
do
set -e
ofile=$dest/${newname:-$i}
rm -f $ofile
cp $i $ofile
if $strip
then
strip $ofile
if i386
then
mcs -d $ofile
fi
fi
if [ -n "$group" ]
then
chgrp $group $ofile
fi
if [ -n "$owner" ]
then
chown $owner $ofile
fi
chmod $mode $ofile
set +e
done
exit 0
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.