David T. Lewis wrote
> 
>       ProxyPipeline command: '/bin/sleep 10'
> This gives you exactly what you expect to see.
> 

Okay, it worked! However, I'm confused by the string escaping. Because I'm
on a Mac, and only later discovered that meant I'm on Unix, I have lots of
paths with spaces and even [gasp] apostrophes in them (the second makes
Smalltalk strings a lot of fun). One thing that I loved about OSProcess is
that I felt like I had more control over strings (e.g. paths) in commands
because I could construct my paths in Smalltalk and then just double-quote
the final product.

However, using ProxyPipeline, it seems that CommandShell has layered on its
own escaping rules that are different from Bash's. So, although I can write:
    p := PipeableOSProcess command: '/usr/bin/java
-DJENKINS_HOME="/path/with/a
space/and/an/apostrophe/isn''t/fun/Pharo-1.4/.jenkins"...'

with ProxyPipeline, I apparently have to write:
    p2 := ProxyPipeline command: '/usr/bin/java -DJENKINS_HOME=/path/with/a\
space/and/an/apostrophe/isn\''t/fun/Pharo-1.4/.jenkins...'

I.e. "enclose in double-quotes" vs. "escape single-quotes and spaces with
preceding backslash"

Can I somehow circumvent these extra rules so I don't have to adapt all my
commands? What is their purpose?

Getting closer and closer to having this work...

Thanks.
Sean

--
View this message in context: 
http://forum.world.st/Running-in-background-with-OSProcess-tp4615534p4616587.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.

Reply via email to