1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# **********************************************************************
#
# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
#
# This copy of Ice is licensed to you under the terms described in the
# ICE_LICENSE file included in this distribution.
#
# **********************************************************************
#
# Timeout after the initial spawn.
#
initialTimeout = 10
#
# Default timeout on subsequent expect calls.
#
defaultTimeout = 5
#
# Default value of --Ice.Default.Host
#
host = "127.0.0.1"
#
# Echo the commands.
#
debug = False
import sys, getopt, pexpect, os
def usage():
print "usage: " + sys.argv[0] + " --fast --trace --debug --host host --mode=[debug|release]"
sys.exit(2)
try:
opts, args = getopt.getopt(sys.argv[1:], "", ["fast", "trace", "debug", "host=", "mode="])
except getopt.GetoptError:
usage()
fast = False
trace = False
mode = 'release'
for o, a in opts:
if o == "--debug":
debug = True
if o == "--trace":
trace = True
if o == "--host":
host = a
if o == "--fast":
fast = True
if o == "--mode":
mode = a
if mode != 'debug' or mode != 'release':
print "usage: " + sys.argv[0] + " --trace --debug --host host --mode=[debug|release]"
sys.exit(2)
if host != "":
defaultHost = " --Ice.Default.Host=%s" % (host)
else:
defaultHost = None
def isCygwin():
# The substring on sys.platform is required because some cygwin
# versions return variations like "cygwin_nt-4.01".
return sys.platform[:6] == "cygwin"
def isWin32():
return sys.platform == "win32" or isCygwin()
def isDarwin():
return sys.platform == "darwin"
def mono():
if isWin32():
return ""
else:
return "mono "
def getIceBox():
if isWin32():
if mode == 'release':
return "icebox"
else:
return "iceboxd"
return "icebox"
# Automatically adds default host, and uses our default timeout for
# expect.
class spawn(pexpect.spawn):
def __init__(self, command):
if defaultHost:
command = '%s %s' % (command, defaultHost)
if debug:
print '(%s)' % (command)
self.expectFirst = True
if trace:
logfile = sys.stdout
else:
logfile = None
pexpect.spawn.__init__(self, command, logfile = logfile)
def expect(self, pattern, timeout = defaultTimeout, searchwindowsize=None):
if self.expectFirst and timeout == defaultTimeout:
timeout = initialTimeout
self.expectFirst = False
return pexpect.spawn.expect(self, pattern, timeout, searchwindowsize)
def wait(self):
try:
return pexpect.spawn.wait(self)
except pexpect.ExceptionPexpect, e:
return self.exitstatus
def cleanDbDir(path):
for filename in [ os.path.join(path, f) for f in os.listdir(path) if f != ".gitignore"]:
if os.path.isdir(filename):
cleanDbDir(filename)
try:
os.rmdir(filename)
except OSError:
# This might fail if the directory is empty (because
# it itself contains a .gitignore file.
pass
else:
os.remove(filename)
|