#!/bin/sh # # Install -- a shell script, doing the same as BSD's install. # # Copyright (c) 1994 by, 1996 Gunther Schadow. # # You are free to copy, change and redistribute this file, as long as # you do not remove my name and this copyright notice. This software # is provided "as is" without warranty of any kind. # PKGDIR=/usr/local/etc/packages # MV=mv CP=cp CD=cd TAR=tar STRIP=strip CHMOD=chmod CHOWN=chown CHGRP=chgrp YES=__yes__ NO=__no__ # -c option changes this to $CP XFER=$MV # -s option changes this to $YES STRIP_IT=$NO # MODE=$NO OWNER=$NO GROUP=$NO PACKAGE=$NO MULTI=$NO ATONCE=$NO usage () { echo "usage: `basename $PROG` [-csx] [-g group] [-m mode] [-o owner] [-p package] file1 file2;" echo " or file1 ... fileN directory" exit 1 } # collect parameters PROG=$0 # options set -- `getopt csg:m:o:p: $*` while true do case $1 in -c) XFER=$CP ;; -s) STRIP_IT=$YES ;; -x) ATONCE=$YES ;; -g) GROUP=$2; shift;; -m) MODE=$2; shift;; -o) OWNER=$2; shift;; -p) PACKAGE=$2; shift;; --) shift; break ;; *) usage ;; esac shift done if [ "`basename $PROG`" = "xcp" ] ; then ATONCE=$YES; fi if [ "$#" = "2" ] ; then if [ -d $2 ] ; then MULTI=$YES else MULTI=$NO fi fi if [ "$#" = "1" ] ; then usage ; fi if [ "$#" = "0" ] ; then usage ; fi if [ "$#" = "2" -a ! -d $2 ] ; then $XFER $1 $2 if [ "$STRIP_IT" = "$YES" ] ; then $STRIP $2 ; fi if [ "$MODE" != "$NO" ] ; then $CHMOD $MODE $2 ; fi if [ "$OWNER" != "$NO" ] ; then $CHOWN $OWNER $2 ; fi if [ "$GROUP" != "$NO" ] ; then $CHGRP $GROUP $2 ; fi if [ "$PACKAGE" != "$NO" ] ; then echo $2 >> $PKGDIR/$PACKAGE ; fi exit 0 fi while [ -n "$*" ] ; do DEST=$1; shift if [ -n "$*" ] ; then FILELIST="$FILELIST $DEST" fi done if [ ! -d $DEST ] ; then usage ; fi if [ "$ATONCE" = "$YES" ] then $TAR cf - $FILELIST | ( $CD $DEST ; $TAR xvf - ) for i in $DEST/$FILELIST ; do [ "$STRIP_IT" != "$NO" ] && $STRIP $i [ "$MODE" != "$NO" ] && $CHMOD $MODE $i [ "$OWNER" != "$NO" ] && $CHOWN $OWNER $i [ "$GROUP" != "$NO" ] && $CHGRP $GROUP $i done else for i in $FILELIST ; do $XFER $i $DEST if [ "$STRIP_IT" = "$YES" ] ; then $STRIP $DEST/$i ; fi if [ "$MODE" != "$NO" ] ; then $CHMOD $MODE $DEST/$i ; fi if [ "$OWNER" != "$NO" ] ; then $CHOWN $OWNER $DEST/$i ; fi if [ "$GROUP" != "$NO" ] ; then $CHGRP $GROUP $DEST/$i ; fi if [ "$PACKAGE" != "$NO" ] ; then echo $DEST/$i >> $PKGDIR/$PACKAGE ; fi done fi exit 0