| #!/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 |
| |
| 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" |
| 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;; |
| |
| *) if [ x"$src" = x ] |
| then |
| src=$1 |
| else |
| dst=$1 |
| fi |
| shift |
| continue;; |
| esac |
| done |
| |
| if [ x"$src" = x ] |
| then |
| echo "install: no input file specified" |
| exit 1 |
| fi |
| |
| if [ x"$dst" = x ] |
| then |
| echo "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 logic |
| |
| if [ -d $dst ] |
| then |
| dst="$dst"/`basename $src` |
| fi |
| |
| |
| # get rid of the old one and mode the new one in |
| |
| $doit $rmcmd $dst |
| $doit $instcmd $src $dst |
| |
| |
| # and set any options; do chmod last to preserve setuid bits |
| |
| if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; fi |
| if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; fi |
| if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; fi |
| if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; fi |
| |
| exit 0 |