Browse Source

Merge pull request #487 from huntc/optimised-play-start

Refactored setup scripts for play to be much simpler
Keith Gustafson 12 years ago
parent
commit
76735c513c
3 changed files with 16 additions and 91 deletions
  1. 6 22
      play-java-jpa/setup.py
  2. 5 35
      play-java/setup.py
  3. 5 34
      play-scala/setup.py

+ 6 - 22
play-java-jpa/setup.py

@@ -1,28 +1,12 @@
-
-import subprocess
-import sys
 import setup_util
-import os
+import subprocess
 
 def start(args):
-  setup_util.replace_text("play-java/conf/application.conf", "jdbc:mysql:\/\/.*:3306", "jdbc:mysql://" + args.database_host + ":3306")
-  
-  subprocess.check_call("play dist", shell=True, cwd="play-java")
-  subprocess.check_call("unzip play-java-1.0-SNAPSHOT.zip", shell=True, cwd="play-java/dist")
-  subprocess.check_call("chmod +x start", shell=True, cwd="play-java/dist/play-java-1.0-SNAPSHOT")
-  subprocess.Popen("./start", shell=True, cwd="play-java/dist/play-java-1.0-SNAPSHOT")
-
+  setup_util.replace_text("play-java-jpa/conf/application.conf", "jdbc:mysql:\/\/.*:3306", "jdbc:mysql://" + args.database_host + ":3306")
+  subprocess.Popen(["play","start"], stdin=subprocess.PIPE, cwd="play-java-jpa")
   return 0
+
 def stop():
-  p = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
-  out, err = p.communicate()
-  for line in out.splitlines():
-    if './start' in line or ('play' in line and 'java' in line):   
-      pid = int(line.split(None, 2)[1])
-      os.kill(pid, 9)
-  try:
-    os.remove("play-java/RUNNING_PID")
-  except OSError:
-    pass
-    
+  p = subprocess.Popen(["play","stop"], cwd="play-java-jpa")
+  p.communicate()
   return 0

+ 5 - 35
play-java/setup.py

@@ -1,42 +1,12 @@
-
-import subprocess
-import sys
 import setup_util
-import os
-from zipfile import ZipFile
+import subprocess
 
 def start(args):
   setup_util.replace_text("play-java/conf/application.conf", "jdbc:mysql:\/\/.*:3306", "jdbc:mysql://" + args.database_host + ":3306")
-  
-  subprocess.check_call("play dist", shell=True, cwd="play-java")
-
-  if os.name == 'nt':
-    ZipFile("./play-java/dist/play-java-1.0-SNAPSHOT.zip").extractall("./play-java/dist")
-    with open("./play-java/dist/play-java-1.0-SNAPSHOT/start.bat", "w+") as f:
-      f.write("java %1 -cp \"./lib/*;\" play.core.server.NettyServer .")
-    subprocess.Popen("start.bat", shell=True, cwd="play-java/dist/play-java-1.0-SNAPSHOT")
-  else:
-    subprocess.check_call("unzip play-java-1.0-SNAPSHOT.zip", shell=True, cwd="play-java/dist")
-    subprocess.check_call("chmod +x start", shell=True, cwd="play-java/dist/play-java-1.0-SNAPSHOT")
-    subprocess.Popen("./start", shell=True, cwd="play-java/dist/play-java-1.0-SNAPSHOT")
-
+  subprocess.Popen(["play","start"], stdin=subprocess.PIPE, cwd="play-java")
   return 0
-def stop():
-  if os.name == 'nt':
-    with open("./play-java/dist/play-java-1.0-SNAPSHOT/RUNNING_PID") as f:
-      pid = int(f.read())
-      os.kill(pid, 9)
-  else:
-    p = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
-    out, err = p.communicate()
-    for line in out.splitlines():
-      if './start' in line or ('play' in line and 'java' in line):   
-        pid = int(line.split(None, 2)[1])
-        os.kill(pid, 9)
 
-  try:
-    os.remove("play-java/RUNNING_PID")
-  except OSError:
-    pass
-    
+def stop():
+  p = subprocess.Popen(["play","stop"], cwd="play-java")
+  p.communicate()
   return 0

+ 5 - 34
play-scala/setup.py

@@ -1,41 +1,12 @@
-
-import subprocess
-import sys
 import setup_util
-import os
-from zipfile import ZipFile
+import subprocess
 
 def start(args):
   setup_util.replace_text("play-scala/conf/application.conf", "jdbc:mysql:\/\/.*:3306", "jdbc:mysql://" + args.database_host + ":3306")
-
-  subprocess.check_call("play dist", shell=True, cwd="play-scala")
-
-  if os.name == 'nt':
-    ZipFile("./play-scala/dist/play-scala-1.0-SNAPSHOT.zip").extractall("./play-scala/dist")
-    with open("./play-scala/dist/play-scala-1.0-SNAPSHOT/start.bat", "w+") as f:
-      f.write("java %1 -cp \"./lib/*;\" play.core.server.NettyServer .")
-    subprocess.Popen("start.bat", shell=True, cwd="play-scala/dist/play-scala-1.0-SNAPSHOT")
-  else:
-    subprocess.check_call("unzip play-scala-1.0-SNAPSHOT.zip", shell=True, cwd="play-scala/dist")
-    subprocess.check_call("chmod +x start", shell=True, cwd="play-scala/dist/play-scala-1.0-SNAPSHOT")
-    subprocess.Popen("./start", shell=True, cwd="play-scala/dist/play-scala-1.0-SNAPSHOT")
-
+  subprocess.Popen(["play","start"], stdin=subprocess.PIPE, cwd="play-scala")
   return 0
-def stop():
-  if os.name == 'nt':
-    with open("./play-scala/dist/play-scala-1.0-SNAPSHOT/RUNNING_PID") as f:
-      pid = int(f.read())
-      os.kill(pid, 9)
-  else:
-    p = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
-    out, err = p.communicate()
-    for line in out.splitlines():
-      if './start' in line or ('play' in line and 'java' in line):
-        pid = int(line.split(None, 2)[1])
-        os.kill(pid, 9)
-  try:
-    os.remove("play-scala/RUNNING_PID")
-  except OSError:
-    pass
 
+def stop():
+  p = subprocess.Popen(["play","stop"], cwd="play-scala")
+  p.communicate()
   return 0