浏览代码

Ported make_all to Python

Yentl Van Tendeloo 9 年之前
父节点
当前提交
26f660397a
共有 5 个文件被更改,包括 37 次插入45 次删除
  1. 0 14
      make_all.bat
  2. 0 14
      make_all.sh
  3. 12 8
      scripts/compile.py
  4. 11 9
      scripts/link_and_load.py
  5. 14 0
      scripts/make_all.py

+ 0 - 14
make_all.bat

@@ -1,14 +0,0 @@
-#!/bin/bash
-set -e
-
-username=$1
-address=$2
-shift
-shift
-
-for f in "$@"
-do
-    ./compile.sh $address $f $RANDOM $f CO
-done
-
-./link_and_load.sh $address $username "$@"

+ 0 - 14
make_all.sh

@@ -1,14 +0,0 @@
-#!/bin/bash
-set -e
-
-username=$1
-address=$2
-shift
-shift
-
-for f in "$@"
-do
-    ./compile.sh $address $f $RANDOM $f CO
-done
-
-./link_and_load.sh $address $username "$@"

+ 12 - 8
scripts/compile.py

@@ -3,12 +3,16 @@ import os
 import urllib2
 import subprocess
 
-address = sys.argv[1]
-filename = os.path.realpath(sys.argv[2])
-username = sys.argv[3]
-modulename = sys.argv[4]
-mode = sys.argv[5]
+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")
 
-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")
+if __name__ == "__main__":
+    address = sys.argv[1]
+    filename = sys.argv[2]
+    username = sys.argv[3]
+    modulename = sys.argv[4]
+    mode = sys.argv[5]
+    
+    do_compile(address, filename, username, modulename, mode)

+ 11 - 9
scripts/link_and_load.py

@@ -1,15 +1,17 @@
 import sys
 import urllib2
 
-address = sys.argv[1]
-username = sys.argv[2]
+def link_and_load(address, username, objs, fast):
+    urllib2.urlopen(urllib2.Request(address, "op=set_input&username=user_manager&element_type=V&value=\"%s\"" % username)).read()
 
-urllib2.urlopen(urllib2.Request(address, "op=set_input&username=user_manager&element_type=V&value=\"%s\"" % username)).read()
+    sys.path.append("interface/HUTN")
+    from hutn_compiler.linker import link
+    link(address, username, objs, fast)
 
+if __name__ == "__main__":
+    address = sys.argv[1]
+    username = sys.argv[2]
+    objs = [arg for arg in sys.argv[3:] if arg != "--fast"]
+    fast = "--fast" in sys.argv[3:]
 
-objects = [arg for arg in sys.argv[3:] if arg is not "--fast"]
-fast = len(objects) != len(sys.argv[3:])
-
-sys.path.append("interface/HUTN")
-from hutn_compiler.linker import link
-link(address, username, sys.argv[3:], fast)
+    link_and_load(address, username, objs, fast)

+ 14 - 0
scripts/make_all.py

@@ -0,0 +1,14 @@
+import sys
+
+from compile import do_compile
+from link_and_load import link_and_load
+import random
+
+address = sys.argv[1]
+username = sys.argv[2]
+files = sys.argv[3:]
+
+for f in files:
+    do_compile(address, f, str(random.random()), f, "CO")
+
+link_and_load(address, username, files, False)