Mark Waddingham wrote:
> On 2016-02-04 02:57, Richard Gaskin wrote:
>> I've successfully exported variables to a process run with shell,
>> e.g.:
>>
>>     put shell("export somevar='Hello!'; ./test.sh")
>>
>> ...where test.sh simply echoes somevar to verify that it got it.
>>
>> Now I have a process I need to read and write to, but I don't know
>> how to export variables to it - clues?
>
> A process that gets launched either via shell or open process will
> inherit the environment variables set by the engine... So I think
> doing:
>
> put "Hello!" into $somevar
>
> put shell("./test.sh")
>    or
> open process ... for ...
>
> Should both have the effect that the launched process will see
> 'somevar' as specified.

Indeed it does. I had thought that was how it should work, but apparently I had a problem in the bash script I was running as the launched process, and that led me astray.

So simple!  Nice.  Will that work on Windows as well?

Here's what I'm up to: I've been writing a simple HTTP server for local testing of web stuff, particularly CGIs like LC Server and standalones made with LC run with -ui.

With variable exporting I can recreate pretty much all the things a CGI needs from the Apache environment, with one exception which is my next task: POST data.

When running a CGI that uses POST, the CGI will read stdin to obtain the POST data. My understanding is that LC Server does this for us and puts the parsed data into the array $_POST, as does PHP. But other CGIs, like standalones or bash scripts or others that don't offer that convenience, the process will need to read stdin to obtain that data.

So my aim is to open the CGI process for append, write the POST data that I'd previously read from the socket to the opened process, read whatever comes back, and then close it and return the processes' output back over the socket to the client.

For GET this is working now using "shell"; I haven't used "open process" in so long that I have no experience with how reading and writing work with regard to stdin in the child.

I should have some time to experiment with that later today, but if you know of any reason why that won't work your input would be very helpful.

Thanks -

--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 [email protected]                http://www.FourthWorld.com


_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to