mirror of
https://github.com/gnustep/libs-steptalk.git
synced 2025-02-23 11:31:01 +00:00
46 lines
998 B
Smalltalk
46 lines
998 B
Smalltalk
|
"
|
||
|
Script shell - shell written in script.
|
||
|
|
||
|
This is just an example.
|
||
|
|
||
|
Run it by: stexec shell.st
|
||
|
|
||
|
Author: Stefan Urbanek
|
||
|
Date: 2003 Oct 3
|
||
|
|
||
|
"
|
||
|
|
||
|
[| :done
|
||
|
|
||
|
main
|
||
|
| line env engine result |
|
||
|
|
||
|
Environment includeFramework:'StepTalk'.
|
||
|
Environment loadModule:'ReadlineTranscript'.
|
||
|
|
||
|
" Create environment "
|
||
|
env := STEnvironment defaultScriptingEnvironment.
|
||
|
env setObject:env forName:'Environment'.
|
||
|
env setObject:Transcript forName:'Transcript'.
|
||
|
env setObject:self forName:'Shell'.
|
||
|
|
||
|
" Create and setup engine "
|
||
|
engine := STEngine engineForLanguageWithName:'Smalltalk'.
|
||
|
|
||
|
" Do the loop! "
|
||
|
|
||
|
[ done ] whileFalse: [
|
||
|
line := Transcript readLine:'Shell > '.
|
||
|
(line = 'exit') ifTrue: [ done := YES ].
|
||
|
result := engine executeCode: (line, ' ') inEnvironment:env.
|
||
|
Transcript showLine: result.
|
||
|
].
|
||
|
^self
|
||
|
!
|
||
|
|
||
|
exit
|
||
|
Transcript showLine: 'BLAH'.
|
||
|
done := YES.
|
||
|
^self
|
||
|
]
|