Created
November 19, 2010 21:06
-
-
Save dpritchett/707170 to your computer and use it in GitHub Desktop.
pretend port of mike's What.js to python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Compare to https://github.com/entmike/What/blob/master/libs/What.js | |
import http #note, this lib doesn't exist in python, maybe BaseHTTPServer would work here? | |
from urlparse import urlparse | |
print([ | |
"", | |
"o `O o oO ", | |
"O o O OO ", | |
"o O o O oO ", | |
"O O O oOo Oo ", | |
"o o o OoOo. .oOoO' o oO ", | |
"O O O o o O o O ", | |
"`o O o O' o O o O o Oo ", | |
" `OoO' `OoO' O o `OoO'o `oO oO", | |
"", | |
"A Fake Python Web Container.", | |
"",] | |
try: | |
data = open('conf/server.py') | |
serverConfig = eval('(' + str(data.read()) + ')') | |
except: | |
print 'Bad or missing conf/server.js file. Ending now.' | |
server = serverConfig['server'] || {} | |
server['address'] = server['address'] || 'localhost' | |
server['port'] = server['port'] || '4321' | |
server['shutdown'] = server['shutdown'] || 'SHUTUP' | |
services = serverConfig['services'] | |
def __newServer(req, res): | |
hostName = req['headers']['host'] | |
if hostName is (server['address'] + ':' + server['port']): | |
pathname = urlparse.urlparse(req['url'], True)['pathname'] | |
if pathname.find(server['shutdown']) is 1: | |
print 'Received SHUTDOWN Signal. Shutting down...' | |
res.writeHead(200, {'Content-Type': 'text/plain'}) | |
res.end('Shutdown Signal Accepted.') | |
process.exit(0) | |
else: | |
res.writeHead(4040, {'Content-Type': ''}) | |
res.end('') | |
shutdownServer = http.createServer(__newServer) | |
shutdownServer.listen(server['port']) | |
for service in services: | |
engine = __import__(service['engine']['className'] || './Engine.js') | |
engine = engine.create({ | |
'port': service['port'], | |
'config': service['engine'],}) | |
engine.start() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment