freebsd-skq/contrib/top/install-sh
rwatson 40428b7066 Merge r183430 from vendor/top/dist to head/contrib/top, although with
record-only mergeinfo because an automated merge is confused by the
flattening that took place:

  Move install to install-sh to prevent name-clashes.

MFC after:	3 days
2009-03-10 11:46:41 +00:00

70 lines
928 B
Bash
Executable File

#!/bin/sh
#
# this shell script is amazingly similar to the old and lamented
# BSD "install" command. It recognized the following options:
#
# -o target file owner
# -m target file mode
# -g target file group owner
#
#
# scan the options
#
while [ $# -gt 0 ]; do
case $1 in
-o)
owner=$2
shift ; shift
;;
-m)
mode=$2
shift; shift
;;
-g)
group=$2
shift ; shift
;;
-*)
echo "install: unknown option $1"
exit
;;
*)
break
;;
esac
done
#
# we need two more: filename and destination
#
if [ $# -ne 2 ]; then
echo "Usage: install [ -o owner ] [ -m mode ] [ -g group ] file destination"
exit
fi
#
# first, copy
#
cp $1 $2
#
# normalize the name
#
dest=$2
if [ -d $2 ]; then
dest=$2/`basename $1`
fi
#
# do optional things
#
if [ "$owner" ]; then
chown $owner $dest
fi
if [ "$group" ]; then
chgrp $group $dest
fi
if [ "$mode" ]; then
chmod $mode $dest
fi