OK, since I started us down a dead-end path, here's some goodies that DO work.
Create a new stack. Put the handlers below in the stack script.
Now create one large scrolling field.

Now run this in your message box, a lengthy shell task (finding all html files in your Applications directory):

## RUN find /Applications/ -name '*.html as an asynchronous task and stream the data back
put async_shell("find /Applications/ -name '*.html'") into tProcessID
repeat while async_process_alive(tProcessID)
   put async_shell_get_data(tProcessID) into fld 1
   wait 1 second with messages
end repeat
put async_shell_get_data(tProcessID) into fld 1

It could use a little polishing, but it works! Asynchronous shell tasks on MacOS X...!

#######

global _async_shell_counter, _async_shell_map

function async_shell tCmd
if (_async_shell_counter is empty) then put 1 into _async_shell_counter
  else add 1 to _async_shell_counter

  put specialFolderPath("temporary") into tFilePath
  if (last char of tFilePath <> "/") then put "/" after tFilePath
  put ("revTmp"&_async_shell_counter&".out") after tFilePath

  put tCmd&" &> "&tFilePath&" & echo $!" into tCmd

  put shell(tCmd) into tProcessID
  put tFilePath into _async_shell_map[tProcessID]

  return tProcessID
end async_shell

function async_process_alive tProcessID
  put shell(("ps -p"&&tProcessID)) into tProcessList
  return (offset(tProcessID, tProcessList) > 0)
end async_process_alive

function async_shell_get_data tProcessID
  return url ("file:"&_async_shell_map[tProcessID])
end async_shell_get_data

Ugh. I just tried this and it doesn't work in Rev- although it's the standard way to deal with this sort of task in a terminal. I'm guessing that Rev refuses to return until the process is completely terminated- and opens a whole new shell environment every time you call shell(). How rude!

Now picking for a workaround... sorry for the false alarm.

On 6/2/05 4:23 PM, Brian Yennie wrote:

Agh, sorry- I obviously missed the point of the thread.
Add an ampersand after your command:
get shell("mycommand > mylogfile.log &")
Voila, a "backgrounded" process that returns immediately.

Oh cool. I will go try it. I have a use for this. :)

--
Jacqueline Landman Gay         |     [EMAIL PROTECTED]
HyperActive Software           |     http://www.hyperactivesw.com
_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution



_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution



_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to