| #!/bin/sh |
| ## |
| ## install.sh -- install a program, script or datafile |
| ## |
| ## Based on `install-sh' from the X Consortium's X11R5 distribution |
| ## as of 89/12/18 which is freely available. |
| ## Cleaned up for Apache's Autoconf-style Interface (APACI) |
| ## by Ralf S. Engelschall <rse@apache.org> |
| ## |
| # |
| # This script falls under the Apache License. |
| # See http://www.apache.org/docs/LICENSE |
| |
| |
| # |
| # 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}" |
| # |
| # |
| # parse argument line |
| # |
| instcmd="$mvprog" |
| chmodcmd="" |
| chowncmd="" |
| chgrpcmd="" |
| stripcmd="" |
| rmcmd="$rmprog -f" |
| mvcmd="$mvprog" |
| ext="" |
| src="" |
| dst="" |
| while [ "x$1" != "x" ]; do |
| case $1 in |
| -c) instcmd="$cpprog" |
| shift; continue |
| ;; |
| -m) chmodcmd="$chmodprog $2" |
| shift; shift; continue |
| ;; |
| -o) chowncmd="$chownprog $2" |
| shift; shift; continue |
| ;; |
| -g) chgrpcmd="$chgrpprog $2" |
| shift; shift; continue |
| ;; |
| -s) stripcmd="$stripprog" |
| shift; continue |
| ;; |
| -S) stripcmd="$stripprog $2" |
| shift; shift; continue |
| ;; |
| -e) ext="$2" |
| shift; shift; continue |
| ;; |
| *) if [ "x$src" = "x" ]; then |
| src=$1 |
| else |
| dst=$1 |
| fi |
| shift; continue |
| ;; |
| esac |
| done |
| if [ "x$src" = "x" ]; then |
| echo "install.sh: no input file specified" |
| exit 1 |
| fi |
| if [ "x$dst" = "x" ]; then |
| echo "install.sh: 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 logic |
| # |
| if [ -d $dst ]; then |
| dst="$dst/`basename $src`" |
| fi |
| |
| # Add a possible extension (such as ".exe") to src and dst |
| src="$src$ext" |
| dst="$dst$ext" |
| |
| # 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 |
| $instcmd $src $dsttmp |
| |
| # And set any options; do chmod last to preserve setuid bits |
| if [ "x$chowncmd" != "x" ]; then $chowncmd $dsttmp; fi |
| if [ "x$chgrpcmd" != "x" ]; then $chgrpcmd $dsttmp; fi |
| if [ "x$stripcmd" != "x" ]; then $stripcmd $dsttmp; fi |
| if [ "x$chmodcmd" != "x" ]; then $chmodcmd $dsttmp; fi |
| |
| # Now rename the file to the real destination. |
| $rmcmd $dst |
| $mvcmd $dsttmp $dst |
| |
| exit 0 |
| |