Skip to content

Instantly share code, notes, and snippets.

@behrooz-tahanzadeh
Created December 10, 2015 11:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save behrooz-tahanzadeh/3d89190c9743b1ad2e4f to your computer and use it in GitHub Desktop.
Save behrooz-tahanzadeh/3d89190c9743b1ad2e4f to your computer and use it in GitHub Desktop.
#import statements
import subprocess
from cgi import escape,parse_qs
from wsgiref.simple_server import make_server
import atexit
def prepareCmd(req):
queryDic = parse_qs(req['QUERY_STRING'])
if queryDic.get('cmd') != None:
return str(queryDic.get('cmd')[0]).split(' ')
else:
return None
#eof
def runCmd(cmdStr):
p = subprocess.Popen(cmdStr, stdout=subprocess.PIPE)
outputStr = ""
for line in p.stdout:
outputStr+=line
p.wait()
return outputStr
#eof
def prepareResponse(outputStr, startResponse):
outputStr = outputStr.replace('\n', '<br>')
strLen = str(len(outputStr))
startResponse('200 OK', [('Content-Type', 'text/html'),('Content-Length', strLen)])
return [outputStr]
#eof
def requestHandler(req, startResponse):
cmdStr = prepareCmd(req)
if cmdStr != None:
outputStr = runCmd(cmdStr)
else:
outputStr = "Missing CMD parameter!!!"
return prepareResponse(outputStr, startResponse)
#eof
def exitHandler():
print "Shuting down server..."
global httpd
httpd.shutdown()
#eof
def main():
httpd = make_server('localhost', 8004, requestHandler)
atexit.register(exitHandler)
print "Listening... on port: ",8004
httpd.serve_forever()
#eof
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment