| # This is about all it requires to write a wish shell in Python! |
| |
| import _tkinter |
| import os |
| import sys |
| |
| tk = _tkinter.create(os.environ['DISPLAY'], 'wish', 'Tk', 1) |
| tk.call('update') |
| |
| cmd = '' |
| |
| while 1: |
| if cmd: prompt = '' |
| else: prompt = '% ' |
| try: |
| sys.stdout.write(prompt) |
| sys.stdout.flush() |
| line = sys.stdin.readline() |
| except EOFError: |
| break |
| cmd = cmd + (line + '\n') |
| if tk.getboolean(tk.call('info', 'complete', cmd)): |
| tk.record(line) |
| try: |
| result = tk.call('eval', cmd) |
| except _tkinter.TclError, msg: |
| print 'TclError:', msg |
| else: |
| if result: print result |
| cmd = '' |