34 lines
755 B
Python
34 lines
755 B
Python
import sys
|
|
import cStringIO
|
|
import gluon.contrib.shell
|
|
import code, thread
|
|
from gluon.debug import communicate
|
|
|
|
|
|
if DEMO_MODE or MULTI_USER_MODE:
|
|
session.flash = T('disabled in demo mode')
|
|
redirect(URL('default','site'))
|
|
|
|
FE=10**9
|
|
|
|
def index():
|
|
app = request.args(0) or 'admin'
|
|
reset()
|
|
# read buffer
|
|
data = communicate()
|
|
return dict(app=app,data=data)
|
|
|
|
def callback():
|
|
app = request.args[0]
|
|
command = request.vars.statement
|
|
session['debug_commands:'+app].append(command)
|
|
output = communicate(command)
|
|
k = len(session['debug_commands:'+app]) - 1
|
|
return '[%i] %s%s\n' % (k + 1, command, output)
|
|
|
|
def reset():
|
|
app = request.args(0) or 'admin'
|
|
session['debug_commands:'+app] = []
|
|
return 'done'
|
|
|