msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-07-25 20:08+0200\n"
+"POT-Creation-Date: 2012-07-25 20:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Profile not found"
msgstr "Profil nicht gefunden"
-#: templates/news-item.html:7
-msgid "Show all news entries"
-msgstr ""
-
#: webapp/handlers_news.py:44 webapp/ui_modules.py:54
msgid "Unknown author"
msgstr "Unbekannter Autor"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-07-25 20:08+0200\n"
+"POT-Creation-Date: 2012-07-25 20:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Profile not found"
msgstr ""
-#: templates/news-item.html:7
-msgid "Show all news entries"
-msgstr ""
-
#: webapp/handlers_news.py:44 webapp/ui_modules.py:54
msgid "Unknown author"
msgstr ""
(r"/torrent/([0-9a-f]+)", TrackerDetailHandler),
] + static_handlers)
+ # boot.ipfire.org
+ BOOT_STATIC_PATH = os.path.join(self.settings["static_path"], "netboot")
+ self.add_handlers(r"boot\.ipfire\.org", [
+ (r"/", tornado.web.RedirectHandler, { "url" : "http://www.ipfire.org/download" }),
+
+ # Configurations
+ (r"/menu.gpxe", MenuGPXEHandler),
+ (r"/menu.cfg", MenuCfgHandler),
+ (r"/config/([0-9]+)/boot.gpxe", BootGPXEHandler),
+
+ # Static files
+ (r"/(boot.png|custom.gpxe|premenu.cfg|vesamenu.c32|menu.c32)",
+ tornado.web.StaticFileHandler, { "path" : BOOT_STATIC_PATH }),
+ ])
+
# nopaste.ipfire.org
self.add_handlers(r"nopaste\.ipfire\.org", [
(r"/", NopasteIndexHandler),
lines.append(paragraph.lstrip())
return '\n'.join(lines)
-class BaseHandler(tornado.web.RequestHandler):
+class BootBaseHandler(tornado.web.RequestHandler):
@property
def netboot(self):
return backend.NetBoot()
-class MenuGPXEHandler(BaseHandler):
+class MenuGPXEHandler(BootBaseHandler):
"""
menu.gpxe
"""
self.write("chain menu.c32 premenu.cfg\n")
-class MenuCfgHandler(BaseHandler):
+class MenuCfgHandler(BootBaseHandler):
def _menu_string(self, menu, level=0):
s = ""
self.render("menu.cfg", menu=menu)
-class BootGPXEHandler(BaseHandler):
+class BootGPXEHandler(BootBaseHandler):
def get(self, id):
config = self.netboot.get_config(id)
if not config:
for line in lines:
self.write("%s\n" % line)
-
-
-class Application(tornado.web.Application):
- def __init__(self):
- settings = dict(
- debug = True,
- gzip = True,
- static_path = os.path.join(BASEDIR, "static"),
- template_path = os.path.join(BASEDIR, "templates"),
- )
-
- tornado.web.Application.__init__(self, **settings)
-
- self.add_handlers(r"boot.ipfire.org", [
- # Configurations
- (r"/menu.gpxe", MenuGPXEHandler),
- (r"/menu.cfg", MenuCfgHandler),
- (r"/config/([0-9]+)/boot.gpxe", BootGPXEHandler),
-
- # Static files
- (r"/(boot.png|custom.gpxe|premenu.cfg|vesamenu.c32|menu.c32)",
- tornado.web.StaticFileHandler, { "path" : self.settings["static_path"] }),
- ])
-
- @property
- def ioloop(self):
- return tornado.ioloop.IOLoop.instance()
-
- def shutdown(self, *args):
- logging.debug("Caught shutdown signal")
- self.ioloop.stop()
-
- def run(self, port=8002):
- logging.debug("Going to background")
-
- # All requests should be done after 30 seconds or they will be killed.
- self.ioloop.set_blocking_log_threshold(30)
-
- http_server = tornado.httpserver.HTTPServer(self, xheaders=True)
-
- # If we are not running in debug mode, we can actually run multiple
- # frontends to get best performance out of our service.
- if not self.settings["debug"]:
- http_server.bind(port)
- http_server.start(num_processes=4)
- else:
- http_server.listen(port)
-
- self.ioloop.start()
-
-if __name__ == "__main__":
- a = Application()
-
- a.run()
-