linker.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import sys
  2. import urllib
  3. import urllib2
  4. import json
  5. sys.path.append("scripts")
  6. from process import send_to_mv
  7. def link_code(address, username, objects):
  8. data = []
  9. data.append(("V", '3'))
  10. data.append(("V", '"link_and_load"'))
  11. for obj in objects:
  12. data.append(("V", '"%s"' % obj))
  13. data.append(("V", '""'))
  14. # Call the main function
  15. data.append(("V", '"main"'))
  16. return data
  17. def link(address, username, objects):
  18. # Read out all symbol tables that are to be linked
  19. send_to_mv(address, username, link_code(address, username, objects))
  20. v = urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "username": username}))).read()
  21. if "OK" not in v:
  22. print(v)
  23. raise Exception("Linking error")
  24. if __name__ == "__main__":
  25. if len(sys.argv) == 1:
  26. print("No username defined")
  27. else:
  28. address = sys.argv[1]
  29. username = sys.argv[2]
  30. objects = set(sys.argv[3:])
  31. if objects:
  32. link(address, username, objects)
  33. else:
  34. print("No files to link defined")