install-sh

Thu, 21 Dec 2017 19:48:27 +0100

author
Mike Becker <universe@uap-core.de>
date
Thu, 21 Dec 2017 19:48:27 +0100
changeset 359
bacb54502b24
parent 239
56f91e0de57b
permissions
-rwxr-xr-x

davql: allow ANYWHERE keyword in SELECT statements

This may seem pointless, but users might want to be explicit about this and the grammar is more consistent.

This commit also adds some no-ops to the functions body of the SET parser, because some day the grammar might allow more clauses after the WHERE clause.

239
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 #!/bin/sh
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 # install - install a program, script, or datafile
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 scriptversion=2013-12-25.23; # UTC
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 # This originates from X11R5 (mit/util/scripts/install.sh), which was
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 # later released in X11R6 (xc/config/util/install.sh) with the
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 # following copyright and license.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 # Copyright (C) 1994 X Consortium
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 # Permission is hereby granted, free of charge, to any person obtaining a copy
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 # of this software and associated documentation files (the "Software"), to
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 # deal in the Software without restriction, including without limitation the
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 # sell copies of the Software, and to permit persons to whom the Software is
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 # furnished to do so, subject to the following conditions:
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 # The above copyright notice and this permission notice shall be included in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 # all copies or substantial portions of the Software.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 # Except as contained in this notice, the name of the X Consortium shall not
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 # be used in advertising or otherwise to promote the sale, use or other deal-
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31 # ings in this Software without prior written authorization from the X Consor-
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 # tium.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35 # FSF changes to this file are in the public domain.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 # Calling this script install-sh is preferred over install.sh, to prevent
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 # 'make' implicit rules from creating a file called install from it
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 # when there is no Makefile.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 # This script is compatible with the BSD install script, but was written
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 # from scratch.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 tab=' '
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 nl='
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 '
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 IFS=" $tab$nl"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 # Set DOITPROG to "echo" to test this script.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 doit=${DOITPROG-}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 doit_exec=${doit:-exec}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54 # Put in absolute file names if you don't have them in your path;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 # or use environment vars.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 chgrpprog=${CHGRPPROG-chgrp}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 chmodprog=${CHMODPROG-chmod}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59 chownprog=${CHOWNPROG-chown}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 cmpprog=${CMPPROG-cmp}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 cpprog=${CPPROG-cp}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62 mkdirprog=${MKDIRPROG-mkdir}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63 mvprog=${MVPROG-mv}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 rmprog=${RMPROG-rm}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 stripprog=${STRIPPROG-strip}
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 posix_mkdir=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 # Desired mode of installed file.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70 mode=0755
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
71
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72 chgrpcmd=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 chmodcmd=$chmodprog
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74 chowncmd=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75 mvcmd=$mvprog
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76 rmcmd="$rmprog -f"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
77 stripcmd=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79 src=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 dst=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81 dir_arg=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 dst_arg=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 copy_on_change=false
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 is_target_a_directory=possibly
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 usage="\
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
89 or: $0 [OPTION]... SRCFILES... DIRECTORY
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90 or: $0 [OPTION]... -t DIRECTORY SRCFILES...
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91 or: $0 [OPTION]... -d DIRECTORIES...
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93 In the 1st form, copy SRCFILE to DSTFILE.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
94 In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95 In the 4th, create DIRECTORIES.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
96
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
97 Options:
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98 --help display this help and exit.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 --version display version info and exit.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
100
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101 -c (ignored)
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102 -C install only if different (preserve the last data modification time)
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
103 -d create directories instead of installing files.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
104 -g GROUP $chgrpprog installed files to GROUP.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105 -m MODE $chmodprog installed files to MODE.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106 -o USER $chownprog installed files to USER.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
107 -s $stripprog installed files.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108 -t DIRECTORY install into DIRECTORY.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
109 -T report an error if DSTFILE is a directory.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
110
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
111 Environment variables override the default commands:
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113 RMPROG STRIPPROG
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114 "
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116 while test $# -ne 0; do
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117 case $1 in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
118 -c) ;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
119
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
120 -C) copy_on_change=true;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122 -d) dir_arg=true;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
123
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
124 -g) chgrpcmd="$chgrpprog $2"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
125 shift;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
126
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
127 --help) echo "$usage"; exit $?;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
128
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
129 -m) mode=$2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
130 case $mode in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
131 *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
132 echo "$0: invalid mode: $mode" >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
133 exit 1;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
134 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
135 shift;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
136
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137 -o) chowncmd="$chownprog $2"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138 shift;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
139
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
140 -s) stripcmd=$stripprog;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
141
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
142 -t)
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
143 is_target_a_directory=always
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
144 dst_arg=$2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
145 # Protect names problematic for 'test' and other utilities.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
146 case $dst_arg in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
147 -* | [=\(\)!]) dst_arg=./$dst_arg;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
148 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
149 shift;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
150
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
151 -T) is_target_a_directory=never;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
152
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
153 --version) echo "$0 $scriptversion"; exit $?;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
154
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
155 --) shift
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
156 break;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
157
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
158 -*) echo "$0: invalid option: $1" >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
159 exit 1;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
160
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
161 *) break;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
162 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
163 shift
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
164 done
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
165
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
166 # We allow the use of options -d and -T together, by making -d
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
167 # take the precedence; this is for compatibility with GNU install.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
168
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
169 if test -n "$dir_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
170 if test -n "$dst_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
171 echo "$0: target directory not allowed when installing a directory." >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
172 exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
173 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
174 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
175
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
176 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
177 # When -d is used, all remaining arguments are directories to create.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
178 # When -t is used, the destination is already specified.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
179 # Otherwise, the last argument is the destination. Remove it from $@.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
180 for arg
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
181 do
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
182 if test -n "$dst_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
183 # $@ is not empty: it contains at least $arg.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
184 set fnord "$@" "$dst_arg"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
185 shift # fnord
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
186 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
187 shift # arg
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
188 dst_arg=$arg
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
189 # Protect names problematic for 'test' and other utilities.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
190 case $dst_arg in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
191 -* | [=\(\)!]) dst_arg=./$dst_arg;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
192 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
193 done
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
194 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
195
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
196 if test $# -eq 0; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
197 if test -z "$dir_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
198 echo "$0: no input file specified." >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
199 exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
200 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
201 # It's OK to call 'install-sh -d' without argument.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
202 # This can happen when creating conditional directories.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
203 exit 0
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
204 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
205
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
206 if test -z "$dir_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
207 if test $# -gt 1 || test "$is_target_a_directory" = always; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
208 if test ! -d "$dst_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
209 echo "$0: $dst_arg: Is not a directory." >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
210 exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
211 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
212 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
213 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
214
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
215 if test -z "$dir_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
216 do_exit='(exit $ret); exit $ret'
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
217 trap "ret=129; $do_exit" 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
218 trap "ret=130; $do_exit" 2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
219 trap "ret=141; $do_exit" 13
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
220 trap "ret=143; $do_exit" 15
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
221
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
222 # Set umask so as not to create temps with too-generous modes.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
223 # However, 'strip' requires both read and write access to temps.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
224 case $mode in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
225 # Optimize common cases.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
226 *644) cp_umask=133;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
227 *755) cp_umask=22;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
228
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
229 *[0-7])
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
230 if test -z "$stripcmd"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
231 u_plus_rw=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
232 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
233 u_plus_rw='% 200'
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
234 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
235 cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
236 *)
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
237 if test -z "$stripcmd"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
238 u_plus_rw=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
239 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
240 u_plus_rw=,u+rw
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
241 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
242 cp_umask=$mode$u_plus_rw;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
243 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
244 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
245
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
246 for src
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
247 do
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
248 # Protect names problematic for 'test' and other utilities.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
249 case $src in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
250 -* | [=\(\)!]) src=./$src;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
251 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
252
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
253 if test -n "$dir_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
254 dst=$src
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
255 dstdir=$dst
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
256 test -d "$dstdir"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
257 dstdir_status=$?
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
258 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
259
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
260 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
261 # might cause directories to be created, which would be especially bad
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
262 # if $src (and thus $dsttmp) contains '*'.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
263 if test ! -f "$src" && test ! -d "$src"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
264 echo "$0: $src does not exist." >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
265 exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
266 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
267
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
268 if test -z "$dst_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
269 echo "$0: no destination specified." >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
270 exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
271 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
272 dst=$dst_arg
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
273
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
274 # If destination is a directory, append the input filename; won't work
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
275 # if double slashes aren't ignored.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
276 if test -d "$dst"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
277 if test "$is_target_a_directory" = never; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
278 echo "$0: $dst_arg: Is a directory" >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
279 exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
280 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
281 dstdir=$dst
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
282 dst=$dstdir/`basename "$src"`
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
283 dstdir_status=0
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
284 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
285 dstdir=`dirname "$dst"`
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
286 test -d "$dstdir"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
287 dstdir_status=$?
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
288 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
289 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
290
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
291 obsolete_mkdir_used=false
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
292
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
293 if test $dstdir_status != 0; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
294 case $posix_mkdir in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
295 '')
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
296 # Create intermediate dirs using mode 755 as modified by the umask.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
297 # This is like FreeBSD 'install' as of 1997-10-28.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
298 umask=`umask`
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
299 case $stripcmd.$umask in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
300 # Optimize common cases.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
301 *[2367][2367]) mkdir_umask=$umask;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
302 .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
303
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
304 *[0-7])
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
305 mkdir_umask=`expr $umask + 22 \
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
306 - $umask % 100 % 40 + $umask % 20 \
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
307 - $umask % 10 % 4 + $umask % 2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
308 `;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
309 *) mkdir_umask=$umask,go-w;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
310 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
311
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
312 # With -d, create the new directory with the user-specified mode.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
313 # Otherwise, rely on $mkdir_umask.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
314 if test -n "$dir_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
315 mkdir_mode=-m$mode
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
316 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
317 mkdir_mode=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
318 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
319
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
320 posix_mkdir=false
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
321 case $umask in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
322 *[123567][0-7][0-7])
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
323 # POSIX mkdir -p sets u+wx bits regardless of umask, which
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
324 # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
325 ;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
326 *)
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
327 tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
328 trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
329
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
330 if (umask $mkdir_umask &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
331 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
332 then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
333 if test -z "$dir_arg" || {
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
334 # Check for POSIX incompatibilities with -m.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
335 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
336 # other-writable bit of parent directory when it shouldn't.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
337 # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
338 ls_ld_tmpdir=`ls -ld "$tmpdir"`
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
339 case $ls_ld_tmpdir in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
340 d????-?r-*) different_mode=700;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
341 d????-?--*) different_mode=755;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
342 *) false;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
343 esac &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
344 $mkdirprog -m$different_mode -p -- "$tmpdir" && {
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
345 ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
346 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
347 }
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
348 }
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
349 then posix_mkdir=:
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
350 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
351 rmdir "$tmpdir/d" "$tmpdir"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
352 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
353 # Remove any dirs left behind by ancient mkdir implementations.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
354 rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
355 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
356 trap '' 0;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
357 esac;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
358 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
359
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
360 if
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
361 $posix_mkdir && (
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
362 umask $mkdir_umask &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
363 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
364 )
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
365 then :
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
366 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
367
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
368 # The umask is ridiculous, or mkdir does not conform to POSIX,
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
369 # or it failed possibly due to a race condition. Create the
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
370 # directory the slow way, step by step, checking for races as we go.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
371
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
372 case $dstdir in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
373 /*) prefix='/';;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
374 [-=\(\)!]*) prefix='./';;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
375 *) prefix='';;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
376 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
377
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
378 oIFS=$IFS
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
379 IFS=/
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
380 set -f
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
381 set fnord $dstdir
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
382 shift
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
383 set +f
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
384 IFS=$oIFS
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
385
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
386 prefixes=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
387
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
388 for d
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
389 do
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
390 test X"$d" = X && continue
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
391
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
392 prefix=$prefix$d
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
393 if test -d "$prefix"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
394 prefixes=
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
395 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
396 if $posix_mkdir; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
397 (umask=$mkdir_umask &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
398 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
399 # Don't fail if two instances are running concurrently.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
400 test -d "$prefix" || exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
401 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
402 case $prefix in
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
403 *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
404 *) qprefix=$prefix;;
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
405 esac
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
406 prefixes="$prefixes '$qprefix'"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
407 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
408 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
409 prefix=$prefix/
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
410 done
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
411
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
412 if test -n "$prefixes"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
413 # Don't fail if two instances are running concurrently.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
414 (umask $mkdir_umask &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
415 eval "\$doit_exec \$mkdirprog $prefixes") ||
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
416 test -d "$dstdir" || exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
417 obsolete_mkdir_used=true
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
418 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
419 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
420 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
421
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
422 if test -n "$dir_arg"; then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
423 { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
424 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
425 { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
426 test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
427 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
428
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
429 # Make a couple of temp file names in the proper directory.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
430 dsttmp=$dstdir/_inst.$$_
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
431 rmtmp=$dstdir/_rm.$$_
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
432
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
433 # Trap to clean up those temp files at exit.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
434 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
435
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
436 # Copy the file name to the temp name.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
437 (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
438
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
439 # and set any options; do chmod last to preserve setuid bits.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
440 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
441 # If any of these fail, we abort the whole thing. If we want to
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
442 # ignore errors from any of these, just make sure not to ignore
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
443 # errors from the above "$doit $cpprog $src $dsttmp" command.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
444 #
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
445 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
446 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
447 { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
448 { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
449
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
450 # If -C, don't bother to copy if it wouldn't change the file.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
451 if $copy_on_change &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
452 old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
453 new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
454 set -f &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
455 set X $old && old=:$2:$4:$5:$6 &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
456 set X $new && new=:$2:$4:$5:$6 &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
457 set +f &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
458 test "$old" = "$new" &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
459 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
460 then
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
461 rm -f "$dsttmp"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
462 else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
463 # Rename the file to the real destination.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
464 $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
465
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
466 # The rename failed, perhaps because mv can't rename something else
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
467 # to itself, or perhaps because mv is so ancient that it does not
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
468 # support -f.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
469 {
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
470 # Now remove or move aside any old file at destination location.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
471 # We try this two ways since rm can't unlink itself on some
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
472 # systems and the destination file might be busy for other
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
473 # reasons. In this case, the final cleanup might fail but the new
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
474 # file should still install successfully.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
475 {
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
476 test ! -f "$dst" ||
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
477 $doit $rmcmd -f "$dst" 2>/dev/null ||
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
478 { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
479 { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
480 } ||
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
481 { echo "$0: cannot unlink or rename $dst" >&2
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
482 (exit 1); exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
483 }
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
484 } &&
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
485
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
486 # Now rename the file to the real destination.
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
487 $doit $mvcmd "$dsttmp" "$dst"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
488 }
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
489 fi || exit 1
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
490
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
491 trap '' 0
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
492 fi
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
493 done
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
494
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
495 # Local variables:
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
496 # eval: (add-hook 'write-file-hooks 'time-stamp)
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
497 # time-stamp-start: "scriptversion="
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
498 # time-stamp-format: "%:y-%02m-%02d.%02H"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
499 # time-stamp-time-zone: "UTC"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
500 # time-stamp-end: "; # UTC"
56f91e0de57b added install target
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
501 # End:

mercurial