summaryrefslogtreecommitdiff
path: root/demoscript/Util.py
diff options
context:
space:
mode:
Diffstat (limited to 'demoscript/Util.py')
-rw-r--r--demoscript/Util.py67
1 files changed, 64 insertions, 3 deletions
diff --git a/demoscript/Util.py b/demoscript/Util.py
index fda0f9277bb..1abab26633c 100644
--- a/demoscript/Util.py
+++ b/demoscript/Util.py
@@ -34,6 +34,7 @@ keepGoing = False
iceHome = None
x64 = False
preferIPv4 = False
+serviceDir = None
demoErrors = []
#
@@ -220,6 +221,17 @@ def isMono():
def isSolaris():
return sys.platform == "sunos5"
+def isNoServices():
+ if not isWin32():
+ return false
+ compiler = ""
+ if os.environ.get("CPP_COMPILER", "") != "":
+ compiler = os.environ["CPP_COMPILER"]
+ else:
+ config = open(os.path.join(toplevel, "cpp", "config", "Make.rules.mak"), "r")
+ compiler = re.search("CPP_COMPILER[\t\s]*= ([A-Z0-9]*)", config.read()).group(1)
+ return compiler == "BCC2010" or compiler == "VC60"
+
def getMapping():
"""Determine the current mapping based on the cwd."""
here = os.path.abspath(os.getcwd())
@@ -320,6 +332,7 @@ def run(demos, protobufDemos = [], root = False):
--preferIPv4 Prefer IPv4 stack (java only)."
--fast Run an abbreviated version of the demos."
--script Generate a script to run the demos.
+ --service-dir=<path> Directory to locate services for C++Builder/VC6.
--env Dump the environment."
--noenv Do not automatically modify environment.""" % (sys.argv[0])
sys.exit(2)
@@ -329,7 +342,7 @@ def run(demos, protobufDemos = [], root = False):
try:
opts, args = getopt.getopt(sys.argv[1:], "lr:R:", [
"filter=", "rfilter=", "start=", "loop", "fast", "trace=", "debug", "host=", "mode=",
- "continue", "ice-home=", "x64", "preferIPv4", "env", "noenv", "script", "protobuf"])
+ "continue", "ice-home=", "x64", "preferIPv4", "env", "noenv", "script", "protobuf", "service-dir="])
except getopt.GetoptError:
usage()
@@ -375,6 +388,9 @@ def run(demos, protobufDemos = [], root = False):
script = True
elif o in '--protobuf':
demos = demos + protobufDemos
+ elif o in '--service-dir':
+ global serviceDir
+ serviceDir = a
for demoFilter, removeFilter in filters:
if removeFilter:
@@ -430,9 +446,21 @@ def isDebugBuild():
buildmode = guessBuildMode()
print "(guessed build mode %s)" % buildmode
return buildmode == "debug"
+
+def getIceVersion():
+ config = open(os.path.join(toplevel, "config", "Make.common.rules"), "r")
+ return re.search("VERSION[\t\s]*= ([0-9]+\.[0-9]+(\.[0-9]+|b[0-9]*))", config.read()).group(1)
+
+def getServiceDir():
+ global serviceDir
+ if serviceDir == None:
+ serviceDir = "C:\\Ice-" + str(getIceVersion()) + "\\bin"
+ return serviceDir
def getIceBox(mapping = "cpp"):
if mapping == "cpp":
+ if isNoServices():
+ return os.path.join(getServiceDir(), "icebox.exe")
if isWin32() and isDebugBuild():
return "iceboxd"
return "icebox"
@@ -444,6 +472,36 @@ def getIceBox(mapping = "cpp"):
return "iceboxnet.exe"
assert False
+def getIceBoxAdmin():
+ if isNoServices():
+ return os.path.join(getServiceDir(), "iceboxadmin")
+ else:
+ return "iceboxadmin"
+
+def getIceGridRegistry():
+ if isNoServices():
+ return os.path.join(getServiceDir(), "icegridregistry")
+ else:
+ return "icegridregistry"
+
+def getIceGridNode():
+ if isNoServices():
+ return os.path.join(getServiceDir(), "icegridnode")
+ else:
+ return "icegridnode"
+
+def getIceGridAdmin():
+ if isNoServices():
+ return os.path.join(getServiceDir(), "icegridadmin")
+ else:
+ return "icegridadmin"
+
+def getGlacier2Router():
+ if isNoServices():
+ return os.path.join(getServiceDir(), "glacier2router")
+ else:
+ return "glacier2router"
+
def spawn(command, cwd = None):
desc = command.split(' ')[0]
@@ -513,10 +571,10 @@ def addLdPath(libpath):
def processCmdLine():
def usage():
- print "usage: " + sys.argv[0] + " --x64 --preferIPv4 --env --noenv --fast --trace=output --debug --host host --mode=[debug|release] --ice-home=<dir>"
+ print "usage: " + sys.argv[0] + " --x64 --preferIPv4 --env --noenv --fast --trace=output --debug --host host --mode=[debug|release] --ice-home=<dir> --service-dir=<dir>"
sys.exit(2)
try:
- opts, args = getopt.getopt(sys.argv[1:], "", ["env", "noenv", "x64", "preferIPv4", "fast", "trace=", "debug", "host=", "mode=", "ice-home="])
+ opts, args = getopt.getopt(sys.argv[1:], "", ["env", "noenv", "x64", "preferIPv4", "fast", "trace=", "debug", "host=", "mode=", "ice-home=", "--servicedir="])
except getopt.GetoptError:
usage()
@@ -529,6 +587,7 @@ def processCmdLine():
global debug
global host
global iceHome
+ global serviceDir
fast = False
trace = False
@@ -560,6 +619,8 @@ def processCmdLine():
preferIPv4 = True
if o == "--ice-home":
iceHome = a
+ if o == "--service-dir":
+ serviceDir = a
if o == "--mode":
buildmode = a
if buildmode != 'debug' and buildmode != 'release':