comparison kdiff3/admin/install-sh @ 14:415083d043f3

KDiff3 version 0.9.70
author joachim99
date Mon, 06 Oct 2003 19:19:11 +0000
parents 53b8ecbce0cb
children efe33e938730
comparison
equal deleted inserted replaced
13:266aeefa1b11 14:415083d043f3
107 if [ x"$src" = x ] 107 if [ x"$src" = x ]
108 then 108 then
109 echo "install: no input file specified" 109 echo "install: no input file specified"
110 exit 1 110 exit 1
111 else 111 else
112 true 112 :
113 fi 113 fi
114 114
115 if [ x"$dir_arg" != x ]; then 115 if [ x"$dir_arg" != x ]; then
116 dst=$src 116 dst=$src
117 src="" 117 src=""
118 118
119 if [ -d $dst ]; then 119 if [ -d $dst ]; then
120 instcmd=: 120 instcmd=:
121 chmodcmd="" 121 chmodcmd=""
122 else 122 else
123 instcmd=mkdir 123 instcmd=$mkdirprog
124 fi 124 fi
125 else 125 else
126 126
127 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command 127 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
128 # might cause directories to be created, which would be especially bad 128 # might cause directories to be created, which would be especially bad
129 # if $src (and thus $dsttmp) contains '*'. 129 # if $src (and thus $dsttmp) contains '*'.
130 130
131 if [ -f $src -o -d $src ] 131 if [ -f "$src" ] || [ -d "$src" ]
132 then 132 then
133 true 133 :
134 else 134 else
135 echo "install: $src does not exist" 135 echo "install: $src does not exist"
136 exit 1 136 exit 1
137 fi 137 fi
138 138
139 if [ x"$dst" = x ] 139 if [ x"$dst" = x ]
140 then 140 then
141 echo "install: no destination specified" 141 echo "install: no destination specified"
142 exit 1 142 exit 1
143 else 143 else
144 true 144 :
145 fi 145 fi
146 146
147 # If destination is a directory, append the input filename; if your system 147 # If destination is a directory, append the input filename; if your system
148 # does not like double slashes in filenames, you may need to add some logic 148 # does not like double slashes in filenames, you may need to add some logic
149 149
150 if [ -d $dst ] 150 if [ -d $dst ]
151 then 151 then
152 dst="$dst"/`basename $src` 152 dst="$dst"/`basename $src`
153 else 153 else
154 true 154 :
155 fi 155 fi
156 fi 156 fi
157 157
158 ## this sed command emulates the dirname command 158 ## this sed command emulates the dirname command
159 dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` 159 dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
161 # Make sure that the destination directory exists. 161 # Make sure that the destination directory exists.
162 # this part is taken from Noah Friedman's mkinstalldirs script 162 # this part is taken from Noah Friedman's mkinstalldirs script
163 163
164 # Skip lots of stat calls in the usual case. 164 # Skip lots of stat calls in the usual case.
165 if [ ! -d "$dstdir" ]; then 165 if [ ! -d "$dstdir" ]; then
166 defaultIFS=' 166 defaultIFS='
167 ' 167 '
168 IFS="${IFS-${defaultIFS}}" 168 IFS="${IFS-${defaultIFS}}"
169 169
170 oIFS="${IFS}" 170 oIFS="${IFS}"
171 # Some sh's can't handle IFS=/ for some reason. 171 # Some sh's can't handle IFS=/ for some reason.
172 IFS='%' 172 IFS='%'
181 181
182 if [ ! -d "${pathcomp}" ] ; 182 if [ ! -d "${pathcomp}" ] ;
183 then 183 then
184 $mkdirprog "${pathcomp}" 184 $mkdirprog "${pathcomp}"
185 else 185 else
186 true 186 :
187 fi 187 fi
188 188
189 pathcomp="${pathcomp}/" 189 pathcomp="${pathcomp}/"
190 done 190 done
191 fi 191 fi
192 192
193 if [ x"$dir_arg" != x ] 193 if [ x"$dir_arg" != x ]
194 then 194 then
195 $doit $instcmd $dst && 195 $doit $instcmd $dst &&
196 196
197 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && 197 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
198 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && 198 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
199 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && 199 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
200 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi 200 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
201 else 201 else
202 202
203 # If we're going to rename the final executable, determine the name now. 203 # If we're going to rename the final executable, determine the name now.
204 204
205 if [ x"$transformarg" = x ] 205 if [ x"$transformarg" = x ]
214 214
215 if [ x"$dstfile" = x ] 215 if [ x"$dstfile" = x ]
216 then 216 then
217 dstfile=`basename $dst` 217 dstfile=`basename $dst`
218 else 218 else
219 true 219 :
220 fi 220 fi
221 221
222 # Make a temp file name in the proper directory. 222 # Make a temp file name in the proper directory.
223 223
224 dsttmp=$dstdir/#inst.$$# 224 dsttmp=$dstdir/#inst.$$#
233 233
234 # If any of these fail, we abort the whole thing. If we want to 234 # If any of these fail, we abort the whole thing. If we want to
235 # ignore errors from any of these, just make sure not to ignore 235 # ignore errors from any of these, just make sure not to ignore
236 # errors from the above "$doit $instcmd $src $dsttmp" command. 236 # errors from the above "$doit $instcmd $src $dsttmp" command.
237 237
238 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && 238 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
239 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && 239 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
240 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && 240 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
241 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && 241 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
242 242
243 # Now rename the file to the real destination. 243 # Now rename the file to the real destination.
244 244
245 $doit $rmcmd -f $dstdir/$dstfile && 245 $doit $rmcmd -f $dstdir/$dstfile &&
246 $doit $mvcmd $dsttmp $dstdir/$dstfile 246 $doit $mvcmd $dsttmp $dstdir/$dstfile