[wpkg-users] Command with pipe character

Rainer Meier r.meier at wpkg.org
Fri Nov 21 14:02:16 CET 2008


Hi Andreas,

Andreas Heinlein wrote:
> This works on the command line, and I entered it like above in the WPKG
> web frontend, but via WPKG it does not work. Looking at the logs I found
> that the pipe character got escaped, it said
> "Command 'echo Yes \| "%ProgramFiles%\OpenOffice.org
> 2.4\program\unopkg.com" add --shared
> %SOFTWARE%\openoffice\extension.oxt' was not successful | The system
> cannot find the file specified". But on the command line it works even
> with the escape, so what could be the problem? And yes, I am sure that
> %SOFTWARE% is set correctly.


As Ben Hartmann already answered you should encode your quotes using
""" within the XML file.

In addition I have to mention that your pipe is only quoted within the
log output. WPKG replaces new-line characters by pipes for log-output to
enforce single-line log entries. As always with such systems this means
that a pipe character appearing within the normal output string has to
be quoted in order to allow parsers to detect if it should be a new-line
or a pipe character. So don't worry, WPKG does not quote the pipe symbol
during exec() call but just within the output.

In addition I recommend to do such things within a cmd script. This
keeps WPKG packages simpler and less prone to errors. In addition a cmd
script allows more debugging and output (hint: re-direct output to a
file) support. In your case there might be even multiple add-ons you
like to deploy. So writing a simple add-on install script would ease
things a lot.

Something like (completely untested)

@echo off
set ADDON_NAME=%1

echo Yes | "%ProgramFiles%\OpenOffice.org 2.4\program\unopkg.com" add
-shared %SOFTWARE%\openoffice\%ADDON_NAME%.oxt'


So your wpkg commands could be something like:
\\path\to\cmd\script.cmd extension1
\\path\to\cmd\script.cmd extension2
...

br,
Rainer



More information about the wpkg-users mailing list