#!/bin/sh## install - install a program, script, or datafile# This comes from X11R5; it is not part of GNU.## $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $## This script is compatible with the BSD install script, but was written# from scratch.## set DOITPROG to echo to test this script# Don't use :- since 4.3BSD and earlier shells don't like it.doit="${DOITPROG-}"# put in absolute paths if you don't have them in your path; or use env. vars.mvprog="${MVPROG-mv}"cpprog="${CPPROG-cp}"chmodprog="${CHMODPROG-chmod}"chownprog="${CHOWNPROG-chown}"chgrpprog="${CHGRPPROG-chgrp}"stripprog="${STRIPPROG-strip}"rmprog="${RMPROG-rm}"instcmd="$mvprog"chmodcmd=""chowncmd=""chgrpcmd=""stripcmd=""rmcmd="$rmprog -f"mvcmd="$mvprog"src=""dst=""while[ x"$1" != x ];docase$1 in
-c)instcmd="$cpprog"shiftcontinue;; -m)chmodcmd="$chmodprog$2"shift shiftcontinue;; -o)chowncmd="$chownprog$2"shift shiftcontinue;; -g)chgrpcmd="$chgrpprog$2"shift shiftcontinue;; -s)stripcmd="$stripprog"shiftcontinue;; *)if[ x"$src"= x ]thensrc=$1elsedst=$1fishiftcontinue;;esacdoneif[ x"$src"= x ]thenecho"install: no input file specified"exit 1
fiif[ x"$dst"= x ]thenecho"install: no destination specified"exit 1
fi# If destination is a directory, append the input filename; if your system# does not like double slashes in filenames, you may need to add some logicif[ -d $dst]thendst="$dst"/`basename $src`fi# Make a temp file name in the proper directory.dstdir=`dirname $dst`dsttmp=$dstdir/#inst.$$## Move or copy the file name to the temp name$doit$instcmd$src$dsttmp# and set any options; do chmod last to preserve setuid bitsif[ x"$chowncmd" != x ];then$doit$chowncmd$dsttmp;fiif[ x"$chgrpcmd" != x ];then$doit$chgrpcmd$dsttmp;fiif[ x"$stripcmd" != x ];then$doit$stripcmd$dsttmp;fiif[ x"$chmodcmd" != x ];then$doit$chmodcmd$dsttmp;fi# Now rename the file to the real destination.$doit$rmcmd$dst$doit$mvcmd$dsttmp$dstexit 0