PipeableOSProcess forkAndExec arguements

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

PipeableOSProcess forkAndExec arguements

Arushi Aggarwal
Hi,

I am trying to startup a squeak image from another squeak image. I
have the following command.

p := PipeableOSProcess  forkAndExec:'Squeak.exe'
                       arguments: #('Squeak3.10.2-7179-basic.image')
                       environment: nil
                       descriptors: nil
                       workingDir: 'C:\Documents and Settings\Arushi
Aggarwal\Desktop\CS598\win32-Squeak3.10.2-7179\Squeak3.10.2-7179\'
                       errorPipelineStream:(InternalPipe
nonBlockingPipe nextPutAll: 'this is the error stream '; yourself).

It does not seem to recognize the argument that is being passed, and
prompts for the user to choose the image. Both Squeak.exe and the
image lie in the path that has been specified as the workingDir.

Is there anything else I can do to make it recognize the argument?


Thanks
Arushi

Reply | Threaded
Open this post in threaded view
|

Re: PipeableOSProcess forkAndExec arguements

David T. Lewis
On Fri, Apr 23, 2010 at 12:40:59PM -0500, Arushi Aggarwal wrote:

> Hi,
>
> I am trying to startup a squeak image from another squeak image. I
> have the following command.
>
> p := PipeableOSProcess  forkAndExec:'Squeak.exe'
>                        arguments: #('Squeak3.10.2-7179-basic.image')
>                        environment: nil
>                        descriptors: nil
>                        workingDir: 'C:\Documents and Settings\Arushi
> Aggarwal\Desktop\CS598\win32-Squeak3.10.2-7179\Squeak3.10.2-7179\'
>                        errorPipelineStream:(InternalPipe
> nonBlockingPipe nextPutAll: 'this is the error stream '; yourself).
>
> It does not seem to recognize the argument that is being passed, and
> prompts for the user to choose the image. Both Squeak.exe and the
> image lie in the path that has been specified as the workingDir.
>
> Is there anything else I can do to make it recognize the argument?

Hi Arushi,

OSProcess support for Windows is not as complete as it should be,
so some of the things that work on Linux do not work properly on
Windows. It looks like you have successfully built an OSProcessPlugin
for your Windows system (well done!). I do not have a Windows system
with me today and I have not looked at this in a while, but I am
afraid that passing command line arguments may be one of the things
that is not complete on Windows.

Another thing that could be an issue is that the OS pipe support
on Windows does not work, so on Windows you cannot read and write
the input and output streams to the external Squeak process that
you are starting. I don't know it that is a concern for you or not.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: PipeableOSProcess forkAndExec arguements

Arushi Aggarwal
Hi,

Thanks for the reply. I managed to get it to work with arguments, that
dont have spaces in the path.

Works for now.

Arushi

On Sat, Apr 24, 2010 at 7:35 AM, David T. Lewis <[hidden email]> wrote:

> On Fri, Apr 23, 2010 at 12:40:59PM -0500, Arushi Aggarwal wrote:
>> Hi,
>>
>> I am trying to startup a squeak image from another squeak image. I
>> have the following command.
>>
>> p := PipeableOSProcess  forkAndExec:'Squeak.exe'
>>                        arguments: #('Squeak3.10.2-7179-basic.image')
>>                        environment: nil
>>                        descriptors: nil
>>                        workingDir: 'C:\Documents and Settings\Arushi
>> Aggarwal\Desktop\CS598\win32-Squeak3.10.2-7179\Squeak3.10.2-7179\'
>>                        errorPipelineStream:(InternalPipe
>> nonBlockingPipe nextPutAll: 'this is the error stream '; yourself).
>>
>> It does not seem to recognize the argument that is being passed, and
>> prompts for the user to choose the image. Both Squeak.exe and the
>> image lie in the path that has been specified as the workingDir.
>>
>> Is there anything else I can do to make it recognize the argument?
>
> Hi Arushi,
>
> OSProcess support for Windows is not as complete as it should be,
> so some of the things that work on Linux do not work properly on
> Windows. It looks like you have successfully built an OSProcessPlugin
> for your Windows system (well done!). I do not have a Windows system
> with me today and I have not looked at this in a while, but I am
> afraid that passing command line arguments may be one of the things
> that is not complete on Windows.
>
> Another thing that could be an issue is that the OS pipe support
> on Windows does not work, so on Windows you cannot read and write
> the input and output streams to the external Squeak process that
> you are starting. I don't know it that is a concern for you or not.
>
> Dave
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: PipeableOSProcess forkAndExec arguements

Gerardo Richarte
Arushi Aggarwal wrote:
> Hi,
>
> Thanks for the reply. I managed to get it to work with arguments, that
> dont have spaces in the path.
>  
for spaces you can try enclosing the strings with spaces in
double quotes, I don't know if it's going to work, so let us
know the result:

p := PipeableOSProcess  forkAndExec:'Squeak.exe'
                       arguments: #('Squeak3.10.2-7179-basic.image')
                       environment: nil
                       descriptors: nil
                       workingDir: '"C:\Documents and Settings\Arushi
Aggarwal\Desktop\CS598\win32-Squeak3.10.2-7179\Squeak3.10.2-7179\"'
                       errorPipelineStream:(InternalPipe
nonBlockingPipe nextPutAll: 'this is the error stream '; yourself).


    gera