[Newbies] scripts

Mark Volkmann mark at ociweb.com
Fri Sep 26 14:33:26 UTC 2008


On Sep 26, 2008, at 9:29 AM, Bert Freudenberg wrote:

> Am 26.09.2008 um 06:49 schrieb Mark Volkmann:
>
>> On Sep 26, 2008, at 8:03 AM, Randal L. Schwartz wrote:
>>
>>>>>>>> "Randal" == Randal L Schwartz <merlyn at stonehenge.com> writes:
>>>
>>>>>>>> "Bert" == Bert Freudenberg <bert at freudenbergs.de> writes:
>>> Bert> Am 26.09.2008 um 05:12 schrieb Mark Volkmann:
>>>
>>>>>> Is it possible to run a Squeak program from a terminal window  
>>>>>> and  have
>>>>>> access to the stdin and stdout streams from the Smalltalk code?
>>>
>>> And the longer still answer (now that I've noticed "access to  
>>> stdin and
>>> stdout") is to use an image with OSProcess loaded, and then you can
>>> get access as follows:
>>>
>>> me := ThisOSProcess thisOSProcess.
>>> stdin := me stdIn. "acts like a Stream"
>>> stdout := me stdOut.
>>> stderr := me stdErr.
>>> stderr print: Time now; cr. "put the time of day on my stderr  
>>> output"
>>
>>
>> Thanks for the example code! Now I think all I need is to find out  
>> how to launch the code from a terminal window. At http://wiki.squeak.org/squeak/1914 
>>  I found this.
>>
>> "To initiate external shell processing, evaluate  
>> ''ExternalCommandShell stop'', save the image, and restart with  
>> ''squeak -headless myImage''."
>>
>> It's not clear to me what will be run when that last command is  
>> executed from a terminal window. Where would I put code like your  
>> example code above and how does the squeak command know to execute  
>> it?
>
> Perhaps you should let us know what you want to achieve in broader  
> terms first. Using Squeak in a headless way to do unix-style stream  
> processing is very unusual. It can be done but it is not something I  
> would recommend to a beginner.
>
> This is in contrast to many other languages which are most easily  
> learned by creating simple programs writing to stdin/stdout. The  
> power of Squeak is in the system (the development tools and  
> frameworks), not so much the language (which is powerful, too, but  
> not really what sets Squeak apart).


I'm really trying to learn about all aspects of Squeak, but at the  
moment I have a task where I need to query a relational database and  
output an XML representation of a subset of the data. This needs to be  
invoked from a cron job, so if I can run my Smalltalk code from a  
terminal window then I'll be set. I know I could do this using many  
other languages such as Java or Ruby. However, since I'm trying to  
learn Smalltalk and Squeak at the moment, I thought I'd use those as  
part of the learning process.

---
Mark Volkmann






More information about the Beginners mailing list