1#!/bin/sh
2#
3# install - install a program, script, or datafile
4# This comes from X11R5; it is not part of GNU.
5#
6# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
7#
8# This script is compatible with the BSD install script, but was written
9# from scratch.
10#
11
12
13# set DOITPROG to echo to test this script
14
15doit="${DOITPROG:-}"
16
17
18# put in absolute paths if you don't have them in your path; or use env. vars.
19
20mvprog="${MVPROG:-mv}"
21cpprog="${CPPROG:-cp}"
22chmodprog="${CHMODPROG:-chmod}"
23chownprog="${CHOWNPROG:-chown}"
24chgrpprog="${CHGRPPROG:-chgrp}"
25stripprog="${STRIPPROG:-strip}"
26rmprog="${RMPROG:-rm}"
27
28instcmd="$mvprog"
29chmodcmd=""
30chowncmd=""
31chgrpcmd=""
32stripcmd=""
33rmcmd="$rmprog -f"
34src=""
35dst=""
36
37while [ x"$1" != x ]; do
38    case $1 in
39	-c) instcmd="$cpprog"
40	    shift
41	    continue;;
42
43	-m) chmodcmd="$chmodprog $2"
44	    shift
45	    shift
46	    continue;;
47
48	-o) chowncmd="$chownprog $2"
49	    shift
50	    shift
51	    continue;;
52
53	-g) chgrpcmd="$chgrpprog $2"
54	    shift
55	    shift
56	    continue;;
57
58	-s) stripcmd="$stripprog"
59	    shift
60	    continue;;
61
62	*)  if [ x"$src" = x ]
63	    then
64		src=$1
65	    else
66		dst=$1
67	    fi
68	    shift
69	    continue;;
70    esac
71done
72
73if [ x"$src" = x ]
74then
75	echo "install:  no input file specified"
76	exit 1
77fi
78
79if [ x"$dst" = x ]
80then
81	echo "install:  no destination specified"
82	exit 1
83fi
84
85
86# if destination is a directory, append the input filename; if your system
87# does not like double slashes in filenames, you may need to add some logic
88
89if [ -d $dst ]
90then
91	dst="$dst"/`basename $src`
92fi
93
94
95# get rid of the old one and mode the new one in
96
97$doit $rmcmd $dst
98$doit $instcmd $src $dst
99
100
101# and set any options; do chmod last to preserve setuid bits
102
103if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; fi
104if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; fi
105if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; fi
106if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; fi
107
108exit 0
109