1#!/bin/sh 2## 3## install.sh -- install a program, script or datafile 4## 5## Based on `install-sh' from the X Consortium's X11R5 distribution 6## as of 89/12/18 which is freely available. 7## Cleaned up for Apache's Autoconf-style Interface (APACI) 8## by Ralf S. Engelschall <rse@apache.org> 9## 10# 11# This script falls under the Apache License. 12# See http://www.apache.org/docs/LICENSE 13 14 15# 16# put in absolute paths if you don't have them in your path; 17# or use env. vars. 18# 19mvprog="${MVPROG-mv}" 20cpprog="${CPPROG-cp}" 21chmodprog="${CHMODPROG-chmod}" 22chownprog="${CHOWNPROG-chown}" 23chgrpprog="${CHGRPPROG-chgrp}" 24stripprog="${STRIPPROG-strip}" 25rmprog="${RMPROG-rm}" 26 27# 28# parse argument line 29# 30instcmd="$mvprog" 31chmodcmd="" 32chowncmd="" 33chgrpcmd="" 34stripcmd="" 35rmcmd="$rmprog -f" 36mvcmd="$mvprog" 37ext="" 38src="" 39dst="" 40while [ "x$1" != "x" ]; do 41 case $1 in 42 -c) instcmd="$cpprog" 43 shift; continue 44 ;; 45 -m) chmodcmd="$chmodprog $2" 46 shift; shift; continue 47 ;; 48 -o) chowncmd="$chownprog $2" 49 shift; shift; continue 50 ;; 51 -g) chgrpcmd="$chgrpprog $2" 52 shift; shift; continue 53 ;; 54 -s) stripcmd="$stripprog" 55 shift; continue 56 ;; 57 -S) stripcmd="$stripprog $2" 58 shift; shift; continue 59 ;; 60 -e) ext="$2" 61 shift; shift; continue 62 ;; 63 *) if [ "x$src" = "x" ]; then 64 src=$1 65 else 66 dst=$1 67 fi 68 shift; continue 69 ;; 70 esac 71done 72if [ "x$src" = "x" ]; then 73 echo "install.sh: no input file specified" 74 exit 1 75fi 76if [ "x$dst" = "x" ]; then 77 echo "install.sh: no destination specified" 78 exit 1 79fi 80 81# 82# If destination is a directory, append the input filename; if 83# your system does not like double slashes in filenames, you may 84# need to add some logic 85# 86if [ -d $dst ]; then 87 dst="$dst/`basename $src`" 88fi 89 90# Add a possible extension (such as ".exe") to src and dst 91src="$src$ext" 92dst="$dst$ext" 93 94# Make a temp file name in the proper directory. 95dstdir=`dirname $dst` 96dsttmp=$dstdir/#inst.$$# 97 98# Move or copy the file name to the temp name 99$instcmd $src $dsttmp 100 101# And set any options; do chmod last to preserve setuid bits 102if [ "x$chowncmd" != "x" ]; then $chowncmd $dsttmp; fi 103if [ "x$chgrpcmd" != "x" ]; then $chgrpcmd $dsttmp; fi 104if [ "x$stripcmd" != "x" ]; then $stripcmd $dsttmp; fi 105if [ "x$chmodcmd" != "x" ]; then $chmodcmd $dsttmp; fi 106 107# Now rename the file to the real destination. 108$rmcmd $dst 109$mvcmd $dsttmp $dst 110 111exit 0 112 113