here's a simple patch that does this.
execute web2py with this option:
--developingapps APP[,APP...]
anywhere in your application, you can use the boolean variable
WEB2PY_APP_IS_DEVELOPING.
---cut below this line---
Index: compileapp.py
===================================================================
--- compileapp.py (revision 680)
+++ compileapp.py (working copy)
@@ -86,6 +86,7 @@
environment['SQLField']=SQLField
environment['SQLFORM']=SQLFORM
environment['SQLTABLE']=SQLTABLE
+ environment['WEB2PY_APP_IS_DEVELOPING']=request.application in
request.env.devingapps
response._view_environment=copy.copy(environment)
return environment
Index: widget.py
===================================================================
--- widget.py (revision 680)
+++ widget.py (working copy)
@@ -305,6 +305,9 @@
parser.add_option('-D', '--debug',
dest='debuglevel', default=30, type='int',
help='set debug output level (0-100, 0 means all,
100 means none, default is 30)')
+ parser.add_option('', '--developingapps',
+ dest='devingapps', metavar='APP
[,APP...]',type='string',
+ help='set the python variable
WEB2PY_APP_IS_DEVELOPING in environments of APP[,APP...]'),
parser.add_option('-S', '--shell',
dest='shell', metavar='APPNAME',
help='run web2py in interactive shell or IPython(if
installed) with specified appname')
@@ -356,6 +359,10 @@
print 'default applications are now installed'
else:
print 'default applications appear to be installed already'
+ if options.devingapps:
+ options.devingapps = options.devingapps.split(',')
+ else:
+ options.devingapps = []
return options, args
def start():
@@ -422,6 +429,9 @@
options.password=raw_input('choose a password:')
if not options.password:
print 'no password, no admin interface'
+ ### if --developmentapps
+ if len(options.devingapps):
+ print 'the following apps have been flagged as under
development:\n\t%s' % '\n\t'.join(options.devingapps)
### start server
ip,port=options.ip,int(options.port)
print 'please visit:'
@@ -437,6 +447,7 @@
request_queue_size=options.request_queue_size,
timeout=options.timeout,
shutdown_timeout=options.shutdown_timeout,
- path=options.folder)
+ path=options.folder,
+ devingapps=options.devingapps)
try: server.start()
except KeyboardInterrupt: server.stop()
Index: main.py
===================================================================
--- main.py (revision 680)
+++ main.py (working copy)
@@ -289,9 +289,10 @@
else: file.write('password=None\n')
file.close()
-def appfactory
(wsgiapp=wsgibase,logfilename='httpsever.log',web2py_path=web2py_path):
+def appfactory
(wsgiapp=wsgibase,logfilename='httpsever.log',web2py_path=web2py_path,devingapps=None):
def app_with_logging(environ, responder):
environ['web2py_path']=web2py_path
+ environ['devingapps']=devingapps
status_headers=[]
def responder2(s,h):
status_headers.append(s)
@@ -318,7 +319,8 @@
request_queue_size=5,
timeout=10,
shutdown_timeout=5,
- path=web2py_path):
+ path=web2py_path,
+ devingapps=None):
"""
starts the web server.
"""
@@ -328,7 +330,7 @@
logging.info('starting web server...')
from contrib.wsgihooks import ExecuteOnCompletion2, callback
self.server=wsgiserver.CherryPyWSGIServer((ip, port),
- appfactory(ExecuteOnCompletion2
(wsgibase,callback),log_filename,web2py_path=path),
+ appfactory(ExecuteOnCompletion2
(wsgibase,callback),log_filename,web2py_path=path,devingapps=devingapps),
numthreads=int(numthreads),
server_name=server_name,
request_queue_size=int(request_queue_size),
timeout=int(timeout),
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---