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.