Mercurial > hg > easyhg-kdiff3
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 |