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.