147 lines
3.6 KiB
Perl
Executable file
147 lines
3.6 KiB
Perl
Executable file
#!/usr/bin/env perl
|
|
|
|
#-------------------------------------------------------------------
|
|
# WebGUI is Copyright 2001-2012 Plain Black Corporation.
|
|
#-------------------------------------------------------------------
|
|
# Please read the legal notices (docs/legal.txt) and the license
|
|
# (docs/license.txt) that came with this distribution before using
|
|
# this software.
|
|
#-------------------------------------------------------------------
|
|
# http://www.plainblack.com info@plainblack.com
|
|
#-------------------------------------------------------------------
|
|
|
|
use strict;
|
|
use Getopt::Long;
|
|
use Pod::Usage;
|
|
use WebGUI::Paths -inc;
|
|
use WebGUI::Session;
|
|
use WebGUI::Asset;
|
|
|
|
$|=1;
|
|
|
|
my ($configFile, $assetId, $userId, $styleId, $toFile, $help);
|
|
$userId = 1;
|
|
my $url = "";
|
|
|
|
GetOptions(
|
|
'configFile:s'=>\$configFile,
|
|
'assetId:s'=>\$assetId,
|
|
'userId:s'=>\$userId,
|
|
'toFile:s'=>\$toFile,
|
|
'help'=>\$help,
|
|
'styleId:s'=>\$styleId,
|
|
'url=s'=>\$url
|
|
);
|
|
|
|
pod2usage( verbose => 2 ) if $help;
|
|
pod2usage() if ($configFile eq '' || !($assetId||$url) );
|
|
|
|
# Open WebGUI session
|
|
my $session = WebGUI::Session->open($configFile);
|
|
$session->user({userId=>$userId}) if (defined $userId);
|
|
$session->scratch->set("personalStyleId", $styleId) if (defined $styleId);
|
|
|
|
my $asset = undef;
|
|
|
|
if ($url) {
|
|
$asset = WebGUI::Asset->newByUrl($session,$url);
|
|
}
|
|
else {
|
|
$asset = WebGUI::Asset->newById($session,$assetId);
|
|
}
|
|
|
|
if (defined $asset) {
|
|
my $file;
|
|
if ($toFile) {
|
|
open $file, '>', $toFile or die "Can't open file $toFile for writing. $!";
|
|
$session->output->setHandle($file);
|
|
}
|
|
my $content = $asset->www_view;
|
|
unless ($content eq "chunked") {
|
|
$session->output->print($content);
|
|
$session->output->setHandle(undef);
|
|
}
|
|
close $file
|
|
if defined $file;
|
|
}
|
|
else {
|
|
print "Asset not defined!!\n";
|
|
}
|
|
|
|
# Clean-up WebGUI Session
|
|
$session->var->end;
|
|
$session->close;
|
|
|
|
exit;
|
|
|
|
__END__
|
|
|
|
=head1 NAME
|
|
|
|
generateContent - Generate content for a specified Asset
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
generateContent --configFile config.conf {--url home|--assetID id}
|
|
[--styleId id]
|
|
[--toFile pathname]
|
|
[--userId id]
|
|
|
|
generateContent --help
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This WebGUI utility script generates content for an Asset specified
|
|
either by its URL or its Asset ID. The content is sent to standard
|
|
output or to a filename.
|
|
|
|
A particular WebGUI UserId can be specified as a viewer, in order
|
|
to check whether the content is correctly generated or not, being
|
|
possible to specify any of the available WebGUI styles to format
|
|
the generated content.
|
|
|
|
=over
|
|
|
|
=item B<--configFile config.conf>
|
|
|
|
The WebGUI config file to use. Only the file name needs to be specified,
|
|
since it will be looked up inside WebGUI's configuration directory.
|
|
This parameter is required.
|
|
|
|
=item B<--assetId id>
|
|
|
|
Generate content for WebGUI's Asset identified by B<id>. Either this
|
|
parameter or B<--url> must be supplied.
|
|
|
|
=item B<--url url>
|
|
|
|
Generate content for WebGUI's Asset located at B<url>, which must be
|
|
relative to the server (e.g. B</home> instead of B<http://your.server/home>).
|
|
Either this parameter or B<--assetID> must be supplied.
|
|
|
|
=item B<--styleId id>
|
|
|
|
Use the WebGUI style specified by the AssetID B<id>. If left unspecified,
|
|
it defaults to using the Asset's default style.
|
|
|
|
=item B<--toFile pathname>
|
|
|
|
Send generated content to the specified filename. If left unspecified,
|
|
content is sent to standard output.
|
|
|
|
=item B<--userId id>
|
|
|
|
Set a specific WebGUI user to act as content viewer. If left unspecified,
|
|
defaults to B<1> (Visitor).
|
|
|
|
=item B<--help>
|
|
|
|
Shows this documentation, then exits.
|
|
|
|
=back
|
|
|
|
=head1 AUTHOR
|
|
|
|
Copyright 2001-2012 Plain Black Corporation.
|
|
|
|
=cut
|