Index: third_party/twisted_8_1/twisted/web/tap.py |
diff --git a/third_party/twisted_8_1/twisted/web/tap.py b/third_party/twisted_8_1/twisted/web/tap.py |
deleted file mode 100644 |
index 559b8016bd78e0f10809bbb3bc84a92b3b3e8245..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/web/tap.py |
+++ /dev/null |
@@ -1,201 +0,0 @@ |
-# Copyright (c) 2001-2008 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-""" |
-Support for creating a service which runs a web server. |
-""" |
- |
-import os |
- |
-# Twisted Imports |
-from twisted.web import server, static, twcgi, script, demo, distrib, trp |
-from twisted.internet import interfaces |
-from twisted.python import usage, reflect |
-from twisted.spread import pb |
-from twisted.application import internet, service, strports |
- |
- |
-class Options(usage.Options): |
- synopsis = "Usage: mktap web [options]" |
- optParameters = [["port", "p", "8080","Port to start the server on."], |
- ["logfile", "l", None, "Path to web CLF (Combined Log Format) log file."], |
- ["https", None, None, "Port to listen on for Secure HTTP."], |
- ["certificate", "c", "server.pem", "SSL certificate to use for HTTPS. "], |
- ["privkey", "k", "server.pem", "SSL certificate to use for HTTPS."], |
- ] |
- optFlags = [["personal", "", |
- "Instead of generating a webserver, generate a " |
- "ResourcePublisher which listens on " |
- "~/%s" % distrib.UserDirectory.userSocketName], |
- ["notracebacks", "n", "Display tracebacks in broken web pages. " + |
- "Displaying tracebacks to users may be security risk!"], |
-] |
- zsh_actions = {"logfile" : "_files -g '*.log'", "certificate" : "_files -g '*.pem'", |
- "privkey" : "_files -g '*.pem'"} |
- |
- |
- longdesc = """\ |
-This creates a web.tap file that can be used by twistd. If you specify |
-no arguments, it will be a demo webserver that has the Test class from |
-twisted.web.demo in it.""" |
- |
- def __init__(self): |
- usage.Options.__init__(self) |
- self['indexes'] = [] |
- self['root'] = None |
- |
- def opt_index(self, indexName): |
- """Add the name of a file used to check for directory indexes. |
- [default: index, index.html] |
- """ |
- self['indexes'].append(indexName) |
- |
- opt_i = opt_index |
- |
- def opt_user(self): |
- """Makes a server with ~/public_html and ~/.twistd-web-pb support for |
- users. |
- """ |
- self['root'] = distrib.UserDirectory() |
- |
- opt_u = opt_user |
- |
- def opt_path(self, path): |
- """<path> is either a specific file or a directory to |
- be set as the root of the web server. Use this if you |
- have a directory full of HTML, cgi, php3, epy, or rpy files or |
- any other files that you want to be served up raw. |
- """ |
- |
- self['root'] = static.File(os.path.abspath(path)) |
- self['root'].processors = { |
- '.cgi': twcgi.CGIScript, |
- '.php3': twcgi.PHP3Script, |
- '.php': twcgi.PHPScript, |
- '.epy': script.PythonScript, |
- '.rpy': script.ResourceScript, |
- '.trp': trp.ResourceUnpickler, |
- } |
- |
- def opt_processor(self, proc): |
- """`ext=class' where `class' is added as a Processor for files ending |
- with `ext'. |
- """ |
- if not isinstance(self['root'], static.File): |
- raise usage.UsageError("You can only use --processor after --path.") |
- ext, klass = proc.split('=', 1) |
- self['root'].processors[ext] = reflect.namedClass(klass) |
- |
- def opt_static(self, path): |
- """Same as --path, this is deprecated and will be removed in a |
- future release.""" |
- print ("WARNING: --static is deprecated and will be removed in" |
- "a future release. Please use --path.") |
- self.opt_path(path) |
- opt_s = opt_static |
- |
- def opt_class(self, className): |
- """Create a Resource subclass with a zero-argument constructor. |
- """ |
- classObj = reflect.namedClass(className) |
- self['root'] = classObj() |
- |
- |
- def opt_resource_script(self, name): |
- """An .rpy file to be used as the root resource of the webserver.""" |
- self['root'] = script.ResourceScriptWrapper(name) |
- |
- |
- def opt_mime_type(self, defaultType): |
- """Specify the default mime-type for static files.""" |
- if not isinstance(self['root'], static.File): |
- raise usage.UsageError("You can only use --mime_type after --path.") |
- self['root'].defaultType = defaultType |
- opt_m = opt_mime_type |
- |
- |
- def opt_allow_ignore_ext(self): |
- """Specify whether or not a request for 'foo' should return 'foo.ext'""" |
- if not isinstance(self['root'], static.File): |
- raise usage.UsageError("You can only use --allow_ignore_ext " |
- "after --path.") |
- self['root'].ignoreExt('*') |
- |
- def opt_ignore_ext(self, ext): |
- """Specify an extension to ignore. These will be processed in order. |
- """ |
- if not isinstance(self['root'], static.File): |
- raise usage.UsageError("You can only use --ignore_ext " |
- "after --path.") |
- self['root'].ignoreExt(ext) |
- |
- def opt_flashconduit(self, port=None): |
- """Start a flashconduit on the specified port. |
- """ |
- if not port: |
- port = "4321" |
- self['flashconduit'] = port |
- |
- def postOptions(self): |
- if self['https']: |
- try: |
- from twisted.internet.ssl import DefaultOpenSSLContextFactory |
- except ImportError: |
- raise usage.UsageError("SSL support not installed") |
- |
- |
- |
-def makePersonalServerFactory(site): |
- """ |
- Create and return a factory which will respond to I{distrib} requests |
- against the given site. |
- |
- @type site: L{twisted.web.server.Site} |
- @rtype: L{twisted.internet.protocol.Factory} |
- """ |
- return pb.PBServerFactory(distrib.ResourcePublisher(site)) |
- |
- |
- |
-def makeService(config): |
- s = service.MultiService() |
- if config['root']: |
- root = config['root'] |
- if config['indexes']: |
- config['root'].indexNames = config['indexes'] |
- else: |
- # This really ought to be web.Admin or something |
- root = demo.Test() |
- |
- if isinstance(root, static.File): |
- root.registry.setComponent(interfaces.IServiceCollection, s) |
- |
- if config['logfile']: |
- site = server.Site(root, logPath=config['logfile']) |
- else: |
- site = server.Site(root) |
- |
- site.displayTracebacks = not config["notracebacks"] |
- |
- if config['personal']: |
- import pwd |
- name, passwd, uid, gid, gecos, dir, shell = pwd.getpwuid(os.getuid()) |
- personal = internet.UNIXServer( |
- os.path.join(dir, distrib.UserDirectory.userSocketName), |
- makePersonalServerFactory(site)) |
- personal.setServiceParent(s) |
- else: |
- if config['https']: |
- from twisted.internet.ssl import DefaultOpenSSLContextFactory |
- i = internet.SSLServer(int(config['https']), site, |
- DefaultOpenSSLContextFactory(config['privkey'], |
- config['certificate'])) |
- i.setServiceParent(s) |
- strports.service(config['port'], site).setServiceParent(s) |
- |
- flashport = config.get('flashconduit', None) |
- if flashport: |
- from twisted.web.woven.flashconduit import FlashConduitFactory |
- i = internet.TCPServer(int(flashport), FlashConduitFactory(site)) |
- i.setServiceParent(s) |
- return s |