use lib "../lib"; use Getopt::Long; use WebGUI::Session; use WebGUI::Macro; my ($session, $macro, $params) = start(); runMacro($session, $macro, $params); finish($session); #------------------------------------------------- sub runMacro { my ($session, $macro, $params) = @_; my $cmd = "use WebGUI::Macro::".$macro; eval($cmd); if ($@) { print "Error: $@\n"; exit; } $macro = "WebGUI::Macro::".$macro."::process"; print &$macro($session, @{$params})."\n"; } #------------------------------------------------- sub start { my $configFile; my @params = (); my $macro = ""; my $userId = 1; my $help; $| = 1; #disable output buffering GetOptions( 'configFile=s' => \$configFile, 'macro=s' => \$macro, 'params=s{0,10}' => \@params, 'userId=s' => \$userId, 'help' => \$help, ); if ($help || $configFile eq "" || $macro eq "") { print <open("..",$configFile); $session->user({userId=>$userId}); return ($session, $macro, \@params); } #------------------------------------------------- sub finish { my $session = shift; $session->var->end; $session->close; }