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 | |
Jack Jansen | 10d0f8f | 1995-10-23 14:36:05 +0000 | [diff] [blame] | 3 | import _tkinter |
Guido van Rossum | 55618ef | 1995-09-07 19:44:48 +0000 | [diff] [blame] | 4 | import os |
Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 5 | |
Jack Jansen | 10d0f8f | 1995-10-23 14:36:05 +0000 | [diff] [blame] | 6 | tk = _tkinter.create(os.environ['DISPLAY'], 'wish', 'Tk', 1) |
Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 7 | tk.call('update') |
| 8 | |
| 9 | cmd = '' |
| 10 | |
| 11 | while 1: |
| 12 | if cmd: prompt = '' |
| 13 | else: prompt = '% ' |
| 14 | try: |
| 15 | line = raw_input(prompt) |
| 16 | except EOFError: |
| 17 | break |
| 18 | cmd = cmd + (line + '\n') |
Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 19 | if tk.getboolean(tk.call('info', 'complete', cmd)): |
Guido van Rossum | 8d1e439 | 1994-06-20 08:13:02 +0000 | [diff] [blame] | 20 | tk.record(line) |
Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 21 | try: |
| 22 | result = tk.call('eval', cmd) |
Jack Jansen | 10d0f8f | 1995-10-23 14:36:05 +0000 | [diff] [blame] | 23 | except _tkinter.TclError, msg: |
Guido van Rossum | 1846882 | 1994-06-20 07:49:28 +0000 | [diff] [blame] | 24 | print 'TclError:', msg |
| 25 | else: |
| 26 | if result: print result |
| 27 | cmd = '' |