compile.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import sys
  2. import os
  3. import urllib2
  4. import urllib
  5. import subprocess
  6. import time
  7. TIMEOUT = 10
  8. def do_compile(address, filename, taskname, modulename, mode, optionals=['--debug'], grammar=""):
  9. filename = os.path.realpath(filename)
  10. if grammar == "":
  11. if mode[0] == "M":
  12. # Load model grammar
  13. grammar = "grammars/modelling.g"
  14. else:
  15. # Load AL grammar
  16. grammar = "grammars/actionlanguage.g"
  17. # Create new task
  18. start = time.time()
  19. while time.time() - start < TIMEOUT:
  20. try:
  21. urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % taskname, "taskname": "task_manager"}))).read()
  22. break
  23. except:
  24. # Try again
  25. continue
  26. subprocess.check_call([sys.executable, "hutn_compiler/compiler.py", filename, grammar, mode, taskname, modulename, filename, address] + optionals, cwd="interface/HUTN")
  27. return 0
  28. if __name__ == "__main__":
  29. if len(sys.argv) != 6:
  30. sys.stderr.write("Expected different parameters!\n")
  31. sys.stderr.write(" %s address filename taskname modulename mode\n" % sys.argv[0])
  32. sys.exit(1)
  33. else:
  34. address = sys.argv[1]
  35. filename = sys.argv[2]
  36. taskname = sys.argv[3]
  37. modulename = sys.argv[4]
  38. mode = sys.argv[5]
  39. sys.exit(do_compile(address, filename, taskname, modulename, mode))