annotate kpathsea/install-sh @ 4337:d56e0d75e7c9 ss-2-1-45

[project @ 2003-02-19 21:20:19 by jwe]
author jwe
date Wed, 19 Feb 2003 21:20:19 +0000
parents 1f0b06020e36
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
1 #!/bin/sh
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
2
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
3 #
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
4 # install - install a program, script, or datafile
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
5 # This comes from X11R5; it is not part of GNU.
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
6 #
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
7 # $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
8 #
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
9 # This script is compatible with the BSD install script, but was written
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
10 # from scratch.
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
11 #
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
12
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
13
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
14 # set DOITPROG to echo to test this script
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
15
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
16 # Don't use :- since 4.3BSD and earlier shells don't like it.
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
17 doit="${DOITPROG-}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
18
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
19
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
20 # put in absolute paths if you don't have them in your path; or use env. vars.
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
21
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
22 mvprog="${MVPROG-mv}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
23 cpprog="${CPPROG-cp}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
24 chmodprog="${CHMODPROG-chmod}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
25 chownprog="${CHOWNPROG-chown}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
26 chgrpprog="${CHGRPPROG-chgrp}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
27 stripprog="${STRIPPROG-strip}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
28 rmprog="${RMPROG-rm}"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
29
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
30 instcmd="$mvprog"
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
31 chmodcmd=""
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
32 chowncmd=""
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
33 chgrpcmd=""
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
34 stripcmd=""
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
35 rmcmd="$rmprog -f"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
36 mvcmd="$mvprog"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
37 src=""
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
38 dst=""
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
39
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
40 while [ x"$1" != x ]; do
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
41 case $1 in
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
42 -c) instcmd="$cpprog"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
43 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
44 continue;;
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
45
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
46 -m) chmodcmd="$chmodprog $2"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
47 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
48 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
49 continue;;
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
50
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
51 -o) chowncmd="$chownprog $2"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
52 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
53 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
54 continue;;
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
55
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
56 -g) chgrpcmd="$chgrpprog $2"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
57 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
58 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
59 continue;;
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
60
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
61 -s) stripcmd="$stripprog"
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
62 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
63 continue;;
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
64
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
65 *) if [ x"$src" = x ]
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
66 then
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
67 src=$1
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
68 else
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
69 dst=$1
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
70 fi
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
71 shift
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
72 continue;;
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
73 esac
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
74 done
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
75
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
76 if [ x"$src" = x ]
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
77 then
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
78 echo "install: no input file specified"
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
79 exit 1
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
80 fi
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
81
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
82 if [ x"$dst" = x ]
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
83 then
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
84 echo "install: no destination specified"
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
85 exit 1
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
86 fi
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
87
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
88
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
89 # If destination is a directory, append the input filename; if your system
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
90 # does not like double slashes in filenames, you may need to add some logic
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
91
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
92 if [ -d $dst ]
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
93 then
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
94 dst="$dst"/`basename $src`
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
95 fi
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
96
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
97 # Make a temp file name in the proper directory.
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
98
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
99 dstdir=`dirname $dst`
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
100 dsttmp=$dstdir/#inst.$$#
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
101
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
102 # Move or copy the file name to the temp name
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
103
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
104 $doit $instcmd $src $dsttmp
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
105
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
106 # and set any options; do chmod last to preserve setuid bits
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
107
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
108 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
109 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
110 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
111 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
112
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
113 # Now rename the file to the real destination.
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
114
3172
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
115 $doit $rmcmd $dst
1f0b06020e36 [project @ 1998-04-24 04:24:34 by jwe]
jwe
parents: 3001
diff changeset
116 $doit $mvcmd $dsttmp $dst
3001
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
117
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
118
ba133466d791 [project @ 1997-05-23 03:13:48 by jwe]
jwe
parents:
diff changeset
119 exit 0