124139Sjoerg#!/bin/sh 224139Sjoerg# 324139Sjoerg# this shell script is amazingly similar to the old and lamented 424139Sjoerg# BSD "install" command. It recognized the following options: 524139Sjoerg# 624139Sjoerg# -o target file owner 724139Sjoerg# -m target file mode 824139Sjoerg# -g target file group owner 924139Sjoerg# 1024139Sjoerg# 1124139Sjoerg# scan the options 1224139Sjoerg# 1324139Sjoergwhile [ $# -gt 0 ]; do 1424139Sjoerg case $1 in 1524139Sjoerg -o) 1624139Sjoerg owner=$2 1724139Sjoerg shift ; shift 1824139Sjoerg ;; 1924139Sjoerg 2024139Sjoerg -m) 2124139Sjoerg mode=$2 2224139Sjoerg shift; shift 2324139Sjoerg ;; 2424139Sjoerg 2524139Sjoerg -g) 2624139Sjoerg group=$2 2724139Sjoerg shift ; shift 2824139Sjoerg ;; 2924139Sjoerg 3024139Sjoerg -*) 3124139Sjoerg echo "install: unknown option $1" 3224139Sjoerg exit 3324139Sjoerg ;; 3424139Sjoerg 3524139Sjoerg *) 3624139Sjoerg break 3724139Sjoerg ;; 3824139Sjoerg esac 3924139Sjoergdone 4024139Sjoerg# 4124139Sjoerg# we need two more: filename and destination 4224139Sjoerg# 4324139Sjoergif [ $# -ne 2 ]; then 4424139Sjoerg echo "Usage: install [ -o owner ] [ -m mode ] [ -g group ] file destination" 4524139Sjoerg exit 4624139Sjoergfi 4724139Sjoerg# 4824139Sjoerg# first, copy 4924139Sjoerg# 5024139Sjoergcp $1 $2 5124139Sjoerg# 5224139Sjoerg# normalize the name 5324139Sjoerg# 5424139Sjoergdest=$2 5524139Sjoergif [ -d $2 ]; then 5624139Sjoerg dest=$2/`basename $1` 5724139Sjoergfi 5824139Sjoerg# 5924139Sjoerg# do optional things 6024139Sjoerg# 6124139Sjoergif [ "$owner" ]; then 6224139Sjoerg chown $owner $dest 6324139Sjoergfi 6424139Sjoergif [ "$group" ]; then 6524139Sjoerg chgrp $group $dest 6624139Sjoergfi 6724139Sjoergif [ "$mode" ]; then 6824139Sjoerg chmod $mode $dest 6924139Sjoergfi 70