1 |
" |
2 |
Script shell - shell written in script. |
3 |
|
4 |
This is just an example. |
5 |
|
6 |
Run it by: stexec shell.st |
7 |
|
8 |
Author: Stefan Urbanek |
9 |
Date: 2003 Oct 3 |
10 |
|
11 |
" |
12 |
|
13 |
[| :done |
14 |
|
15 |
main |
16 |
| line env engine result | |
17 |
|
18 |
Environment includeFramework:'StepTalk'. |
19 |
Environment loadModule:'ReadlineTranscript'. |
20 |
|
21 |
" Create environment " |
22 |
env := STEnvironment defaultScriptingEnvironment. |
23 |
env setObject:env forName:'Environment'. |
24 |
env setObject:Transcript forName:'Transcript'. |
25 |
env setObject:self forName:'Shell'. |
26 |
|
27 |
" Create and setup engine " |
28 |
engine := STEngine engineForLanguageWithName:'Smalltalk'. |
29 |
|
30 |
" Do the loop! " |
31 |
|
32 |
[ done ] whileFalse: [ |
33 |
line := Transcript readLine:'Shell > '. |
34 |
(line = 'exit') ifTrue: [ done := YES ]. |
35 |
result := engine executeCode: (line, ' ') inEnvironment:env. |
36 |
Transcript showLine: result. |
37 |
]. |
38 |
^self |
39 |
! |
40 |
|
41 |
exit |
42 |
Transcript showLine: 'BLAH'. |
43 |
done := YES. |
44 |
^self |
45 |
] |