Преглед на файлове

More changes towards a portable Modelverse

Yentl Van Tendeloo преди 9 години
родител
ревизия
34db5fa944
променени са 3 файла, в които са добавени 31 реда и са изтрити 24 реда
  1. 7 7
      integration/utils.py
  2. 15 14
      interface/HUTN/hutn_compiler/linker.py
  3. 9 3
      scripts/compile.py

+ 7 - 7
integration/utils.py

@@ -42,12 +42,11 @@ def serialize(value):
         return str(value)
 
 def execute(scriptname, parameters=[], wait=False):
-    if os.name == "nt":
-        command = ["%s.bat" % scriptname] + parameters
-    elif os.name == "posix":
-        command = ["./%s.sh" % scriptname] + parameters
-    else:
-        raise Exception("Unknown OS: " + str(os.name))
+    if os.name not in ["nt", "posix"]:
+        # Stop now, as we would have no clue on how to kill its subtree
+        raise Exception("Unknown OS version: " + str(os.name))
+
+    command = [sys.executable, "scripts/%s.py" % scriptname] + parameters
 
     if wait:
         return subprocess.call(command, shell=False)
@@ -86,7 +85,8 @@ def compile_file(address, mod_filename, filename, mode, proc):
                     kill(proc2)
                     print("Compilation timeout expired!")
                     return False
-            if proc2.returncode not in [7, 56]:
+
+            if proc2.returncode != 2:
                 break
 
         # Make sure everything stopped correctly

+ 15 - 14
interface/HUTN/hutn_compiler/linker.py

@@ -84,19 +84,20 @@ def link(address, username, objects, fast):
     import json
     urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "data": json.dumps(commands), "username": username}))).read()
 
-if len(sys.argv) == 1:
-    print("No username defined")
-else:
-    address = sys.argv[1]
-    username = sys.argv[2]
-    objects = set(sys.argv[3:])
-    if "--fast" in objects:
-        objects.remove("--fast")
-        fast = True
+if __name__ == "__main__":
+    if len(sys.argv) == 1:
+        print("No username defined")
     else:
-        fast = False
+        address = sys.argv[1]
+        username = sys.argv[2]
+        objects = set(sys.argv[3:])
+        if "--fast" in objects:
+            objects.remove("--fast")
+            fast = True
+        else:
+            fast = False
 
-    if objects:
-        link(address, username, objects, fast)
-    else:
-        print("No files to link defined")
+        if objects:
+            link(address, username, objects, fast)
+        else:
+            print("No files to link defined")

+ 9 - 3
scripts/compile.py

@@ -5,8 +5,14 @@ import subprocess
 
 def do_compile(address, filename, username, modulename, mode):
     filename = os.path.realpath(filename)
-    urllib2.urlopen(urllib2.Request(address, "op=set_input&username=user_manager&element_type=V&value=\"%s\"" % username)).read()
-    subprocess.check_call([sys.executable, "hutn_compiler/compiler.py", filename, "grammars/actionlanguage.g", mode, username, modulename, filename, address], cwd="interface/HUTN")
+    try:
+        urllib2.urlopen(urllib2.Request(address, "op=set_input&username=user_manager&element_type=V&value=\"%s\"" % username)).read()
+        subprocess.check_call([sys.executable, "hutn_compiler/compiler.py", filename, "grammars/actionlanguage.g", mode, username, modulename, filename, address], cwd="interface/HUTN")
+    except urllib2.URLError:
+        return 2
+    except:
+        return 1
+    return 0
 
 if __name__ == "__main__":
     address = sys.argv[1]
@@ -15,4 +21,4 @@ if __name__ == "__main__":
     modulename = sys.argv[4]
     mode = sys.argv[5]
     
-    do_compile(address, filename, username, modulename, mode)
+    sys.exit(do_compile(address, filename, username, modulename, mode))