You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							65 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							65 lines
						
					
					
						
							1.8 KiB
						
					
					
				| # -*- coding: utf-8 -
 | |
| #
 | |
| # This file is part of gunicorn released under the MIT license.
 | |
| # See the NOTICE for more information.
 | |
| 
 | |
| import os
 | |
| 
 | |
| from gunicorn.errors import ConfigError
 | |
| from gunicorn.app.base import Application
 | |
| from gunicorn import util
 | |
| 
 | |
| 
 | |
| class WSGIApplication(Application):
 | |
|     def init(self, parser, opts, args):
 | |
|         if opts.paste:
 | |
|             app_name = 'main'
 | |
|             path = opts.paste
 | |
|             if '#' in path:
 | |
|                 path, app_name = path.split('#')
 | |
|             path = os.path.abspath(os.path.normpath(
 | |
|                 os.path.join(util.getcwd(), path)))
 | |
| 
 | |
|             if not os.path.exists(path):
 | |
|                 raise ConfigError("%r not found" % path)
 | |
| 
 | |
|             # paste application, load the config
 | |
|             self.cfgurl = 'config:%s#%s' % (path, app_name)
 | |
|             self.relpath = os.path.dirname(path)
 | |
| 
 | |
|             from .pasterapp import paste_config
 | |
|             return paste_config(self.cfg, self.cfgurl, self.relpath)
 | |
| 
 | |
|         if len(args) < 1:
 | |
|             parser.error("No application module specified.")
 | |
| 
 | |
|         self.cfg.set("default_proc_name", args[0])
 | |
|         self.app_uri = args[0]
 | |
| 
 | |
|     def load_wsgiapp(self):
 | |
|         # load the app
 | |
|         return util.import_app(self.app_uri)
 | |
| 
 | |
|     def load_pasteapp(self):
 | |
|         # load the paste app
 | |
|         from .pasterapp import load_pasteapp
 | |
|         return load_pasteapp(self.cfgurl, self.relpath, global_conf=self.cfg.paste_global_conf)
 | |
| 
 | |
|     def load(self):
 | |
|         if self.cfg.paste is not None:
 | |
|             return self.load_pasteapp()
 | |
|         else:
 | |
|             return self.load_wsgiapp()
 | |
| 
 | |
| 
 | |
| def run():
 | |
|     """\
 | |
|     The ``gunicorn`` command line runner for launching Gunicorn with
 | |
|     generic WSGI applications.
 | |
|     """
 | |
|     from gunicorn.app.wsgiapp import WSGIApplication
 | |
|     WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     run()
 | |
| 
 |