setup.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import subprocess
  2. import sys
  3. import setup_util
  4. import os
  5. import time
  6. def start(args, logfile, errfile):
  7. setup_util.replace_text("lift-stateless/src/main/scala/Main.scala", "> \".*:3306", "> \"" + args.database_host + ":3306")
  8. if os.name == 'nt':
  9. subprocess.check_call('"..\\sbt\\sbt.bat" update assembly', shell=True, cwd="lift-stateless", stderr=errfile, stdout=logfile)
  10. subprocess.Popen(".\\run.bat", shell=True, cwd="lift-stateless", stderr=errfile, stdout=logfile)
  11. else:
  12. subprocess.check_call("../sbt/sbt update assembly", shell=True, cwd="lift-stateless", stderr=errfile, stdout=logfile)
  13. subprocess.Popen("./run", shell=True, cwd="lift-stateless", stderr=errfile, stdout=logfile)
  14. time.sleep(5)
  15. return 0
  16. def stop(logfile, errfile):
  17. if os.name == 'nt':
  18. subprocess.check_call("wmic process where \"CommandLine LIKE '%lift-stateless-assembly%'\" call terminate", stderr=errfile, stdout=logfile)
  19. else:
  20. p = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
  21. out, err = p.communicate()
  22. for line in out.splitlines():
  23. if 'lift-stateless-assembly' in line and 'java' in line:
  24. pid = int(line.split(None, 2)[1])
  25. os.kill(pid, 15)
  26. # Takes up so much disk space
  27. if os.name == 'nt':
  28. subprocess.check_call("del /f /s /q target", shell=True, cwd="lift-stateless", stderr=errfile, stdout=logfile)
  29. else:
  30. subprocess.check_call("rm -rf target", shell=True, cwd="lift-stateless", stderr=errfile, stdout=logfile)
  31. return 0