Item1557: PublishPlugin cannot be run from shell

pencil
Priority: Normal
Current State: Closed
Released In:
Target Release: minor
Applies To: Extension
Component: PublishPlugin
Branches:
Reported By: MarcSCHAEFER
Waiting For:
Last Change By: CrawfordCurrie
Please modify PublishPlugin as follows in SVN (http://foswiki.org/Extensions/PublishPlugin#Publishing_from_the_command_line). The doc is wrong.

Publishing from the command line

Just cd to the bin directory, and perl -wT rest /PublishPlugin/publish -web=Book format=file. Parameters are passed as -name value pairs, for example:
perl -T rest /PublishPlugin/publish -web Book -exclusions 'Web*' -format file
perl -T rest /PublishPlugin/publish -web Book -inclusions WebBook -format pdf -genopt '--book --duplex --toclevels=5'
The available parameter names are shown in the publish form above, in the last column.

CORRECT command for below:
su - www-data -s /bin/bash -c 'cd /usr/lib/cgi-bin/foswiki && perl -wT rest /PublishPlugin/publish -web Main -format file'


If I start PublishPlugin from command line:
su - www-data -s /bin/bash -c 'cd /usr/lib/cgi-bin/foswiki && perl -T rest topic=PublishPlugin/publish web=Main format=file'

I get:
ERROR: (400) Invalid REST invocationERROR: (400) Invalid REST invocation

Looking at lib/Foswiki/UI/Rest.pm:
    my $pathInfo = $query->path_info();

    # Foswiki rest invocations are defined as having a subject (pluginName)
    # and verb (restHandler in that plugin)
    unless ( $pathInfo =~ m#/(.*?)[./]([^/]*)# ) {
        my $res = $session->{response};
        $res->header(
            -type   => 'text/html',
            -status => '400'
        );
        $res->print("ERROR: (400) Invalid REST invocation");
        throw Foswiki::EngineException( 401,
            "ERROR: (400) Invalid REST invocation", $res );
    }

it seems the path_info() is wrong. Infact it is not set. I would assume pathInfo is simply the URL, and it tries to extract PublishPlugin and publish, however this is obviously not set through a shell invocation.

Before I start a painful understanding of REST, has anyone any idea ?

thank you.
Doc fixed

-- CrawfordCurrie - 16 May 2009

ItemTemplate edit

Summary PublishPlugin cannot be run from shell
ReportedBy MarcSCHAEFER
Codebase 1.0.5, 1.0.4
SVN Range Foswiki-1.0.0, Thu, 08 Jan 2009, build 1878
AppliesTo Extension
Component PublishPlugin
Priority Normal
CurrentState Closed
WaitingFor
Checkins PublishPlugin:6a2c48aa062f
TargetRelease minor
ReleasedIn
Topic revision: r5 - 18 May 2009, CrawfordCurrie
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy