Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 1 | # This is about all it requires to write a wish shell in Python! |
| 2 | |
| 3 | import tkinter |
| 4 | |
| 5 | tk = tkinter.create(':0', 'wish', 'Tk', 1) |
| 6 | tk.call('update') |
| 7 | |
| 8 | cmd = '' |
| 9 | |
| 10 | while 1: |
| 11 | if cmd: prompt = '' |
| 12 | else: prompt = '% ' |
| 13 | try: |
| 14 | line = raw_input(prompt) |
| 15 | except EOFError: |
| 16 | break |
| 17 | cmd = cmd + (line + '\n') |
Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 18 | if tk.getboolean(tk.call('info', 'complete', cmd)): |
Guido van Rossum | 8d1e439 | 1994-06-20 08:13:02 +0000 | [diff] [blame] | 19 | tk.record(line) |
Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 20 | try: |
| 21 | result = tk.call('eval', cmd) |
| 22 | except tkinter.TclError, msg: |
| 23 | print 'TclError:', msg |
| 24 | else: |
| 25 | if result: print result |
| 26 | cmd = '' |