nsprpub/build/cygwin-wrapper

branch
TOR_BUG_9701
changeset 8
97036ab72558
equal deleted inserted replaced
-1:000000000000 0:e78c1fb9134d
1 #!/bin/sh
2 # This Source Code Form is subject to the terms of the Mozilla Public
3 # License, v. 2.0. If a copy of the MPL was not distributed with this
4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
6 #
7 # Stupid wrapper to avoid win32 dospath/cygdrive issues
8 # Try not to spawn programs from within this file. If the stuff in here looks royally
9 # confusing, see bug: http://bugzilla.mozilla.org/show_bug.cgi?id=206643
10 # and look at the older versions of this file that are easier to read, but
11 # do basically the same thing
12 #
13
14 prog=$1
15 shift
16 if test -z "$prog"; then
17 exit 0
18 fi
19
20 # If $CYGDRIVE_MOUNT was not set in configure, give $mountpoint the results of mount -p
21 mountpoint=$CYGDRIVE_MOUNT
22 if test -z "$mountpoint"; then
23 mountpoint=`mount -p`
24 if test -z "$mountpoint"; then
25 print "Cannot determine cygwin mount points. Exiting"
26 exit 1
27 fi
28 fi
29
30 # Delete everything but "/cygdrive" (or other mountpoint) from mount=`mount -p`
31 mountpoint=${mountpoint#*/}
32 mountpoint=/${mountpoint%%[!A-Za-z0-9_]*}
33 mountpoint=${mountpoint%/}
34
35 args=""
36 up=""
37 if test "${prog}" = "-up"; then
38 up=1
39 prog=${1}
40 shift
41 fi
42
43 process=1
44
45 # Convert the mountpoint in parameters to Win32 filenames
46 # For instance: /cygdrive/c/foo -> c:/foo
47 for i in "${@}"
48 do
49 if test "${i}" = "-wrap"; then
50 process=1
51 else
52 if test "${i}" = "-nowrap"; then
53 process=
54 else
55 if test -n "${process}"; then
56 if test -n "${up}"; then
57 pathname=${i#-I[a-zA-Z]:/}
58 if ! test "${pathname}" = "${i}"; then
59 no_i=${i#-I}
60 driveletter=${no_i%%:*}
61 i=-I${mountpoint}/${driveletter}/${pathname}
62 fi
63 else
64 eval 'leader=${i%%'${mountpoint}'/[a-zA-Z]/*}'
65 if ! test "${leader}" = "${i}"; then
66 eval 'pathname=${i#'${leader}${mountpoint}'/[a-zA-Z]/}'
67 eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
68 driveletter=${no_mountpoint%%/*}
69 i=${leader}${driveletter}:/${pathname}
70 fi
71 fi
72 fi
73
74 args="${args} ${i}"
75 fi
76 fi
77 done
78
79 exec $prog $args

mercurial