compile.py 1.4 KB

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