rendered paste bodyfrom code import InteractiveConsole
import sys
import os
import time
import readline
class Console(InteractiveConsole):
def __init__(self, locals):
InteractiveConsole.__init__(self, locals)
self.logfile = 'log.py'
self.log = None
self.real_stdout = sys.stdout
def raw_input(self, prompt=""):
ret = raw_input(prompt)
self.log.write(ret.replace('\t',' ') + '\n')
return ret
def write(self, data):
lines = data.splitlines()
for line in lines:
if line and not line in (sys.ps1, sys.ps2):
self.log.write('# ' + line + '\n')
self.real_stdout.write(data)
def interact(self):
print "[ writing log to %s ]" % self.logfile
self.log = open(self.logfile, 'w')
self.log.write('#!/usr/bin/python\n')
self.log.write('# created %s\n\n' % time.strftime('%c'))
sys.stdout = self
InteractiveConsole.interact(self)
sys.stdout = self.real_stdout
def run():
console = Console({})
console.interact()