ftp.nice.ch/pub/next/unix/communication/xc.s.tar.gz#/xc/bsdinst.sh

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.