You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
import cgitb; cgitb.enable()
|
|
|
|
import os, sys, cgi, json
|
|
|
|
from subprocess import PIPE, Popen
|
|
|
|
from settings import PROJECT_PATH, PROJECT_URL, EDITOR_URL, MAKE, MAKEFILE
|
|
|
|
from project import Project
|
|
|
|
|
|
|
|
method = os.environ.get("REQUEST_METHOD", "")
|
|
|
|
fs = cgi.FieldStorage()
|
|
|
|
project = fs.getvalue("p", "")
|
|
|
|
path = fs.getvalue("f")
|
|
|
|
dryrun = fs.getvalue("n", "")
|
|
|
|
|
|
|
|
if path:
|
|
|
|
proj = Project(project)
|
|
|
|
args = [MAKE]
|
|
|
|
if MAKEFILE:
|
|
|
|
args.append("-f")
|
|
|
|
args.append(MAKEFILE)
|
|
|
|
if dryrun:
|
|
|
|
args.append("-n")
|
|
|
|
args.append(path)
|
|
|
|
p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE, cwd=proj.fullpath)
|
|
|
|
stdout, stderr = p.communicate()
|
|
|
|
ret = {}
|
|
|
|
ret['stdout'] = stdout
|
|
|
|
ret['stderr'] = stderr
|
|
|
|
ret['returncode'] = p.returncode
|
|
|
|
|
|
|
|
print "Content-type: application/json"
|
|
|
|
print
|
|
|
|
print json.dumps(ret)
|