Skip to content

Instantly share code, notes, and snippets.

@dpritchett
Created November 19, 2010 21:06
Show Gist options
  • Save dpritchett/707170 to your computer and use it in GitHub Desktop.
Save dpritchett/707170 to your computer and use it in GitHub Desktop.
pretend port of mike's What.js to python
# 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