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