Basically, my use case is to execute (on linux) :
 ffmpeg -i /tmp/myfile
  and in case of a space
 ffmpeg -i "/tmp/my file with spaces"

Let's say I called ffmpeg using Runtime.exec, the command array I would pass
would be :

{"ffmpeg", "-i", "/tmp/my file with spaces"}

now, using commons exec, I would intuitively do :

- new CommandLine("ffmpeg").addArgument("-i").addArgument("/tmp/my file with
spaces")

However, this would be the equivalent of the following command array :
{"ffmpeg", "-i", "\"/tmp/my file with spaces\""}

so, ffmpeg does not get /tmp/my file with spaces but gets "/tmp/my file with
spaces", and does not find the file as it does not interpret quotes, only the
shell does.

However, if I
new CommandLine("ffmpeg").addArgument("-i", false).addArgument("/tmp/my file
with spaces", false)
=> everything works fine

regards,
Sami Dalouche

Quoting Siegfried Goeschl <siegfried.goes...@it20one.at>:

> Hi Sami,
>
> not sure that I understand the problem
>
> +) commons-exec is basically Ant code so it does the all the things Ant
> is doing, e.g. hard-to-understand quoting
> +) inside the code it is pretty hard to distinguish between a file name
> and a funny argument string (both containing spaces) so we assume that
> this is a file name which need quoting
> +) since quoting seems to be the #1 topic - please check
> http://commons.apache.org/exec/faq.html#complex-quoting
>
> So I suggest
>
> +) have a look if you could solve your problem by avoiding a single
> command line
> +) describe your problems a bit more detailed
>
> Cheers,
>
> Siegfried Goeschl
>
> sko...@free.fr wrote:
> > I did not notice all commons-* were using the same mailing-list, so here is
> the
> > correct subject along with the original message
> >
> > Sorry for the inconvenience,
> > sami
> >
> > ----- Forwarded message from Ralph Goers <ralph.go...@dslextreme.com> -----
> >     Date: Mon, 16 Feb 2009 18:22:20 -0800
> >     From: Ralph Goers <ralph.go...@dslextreme.com>
> > Reply-To: Commons Developers List <dev@commons.apache.org>
> >  Subject: Re: API discussion: Quoting of arguments: why is it enabled by
> > default?
> >       To: Commons Developers List <dev@commons.apache.org>
> >
> > Can you change your subject to start with [XYZ] and replace XYZ with
> > the Commons project your question pertains to?
> >
> > Thanks,
> > Ralph
> >
> > On Feb 16, 2009, at 2:27 PM, sko...@free.fr wrote:
> >
> >
> >> Hi,
> >>
> >> I am wondering why the quoting of arguments (if they contain spaces)
> >> is enabled
> >> by default.
> >>
> >> This is certainly not the behaviour I was expecting while using the
> >> API, as
> >> passing a filename as an argument will just fail if it is surrounded
> >> with
> >> quotes.
> >>
> >> regards,
> >> sami dalouche
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
> > ----- End forwarded message -----
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to