#!/usr/local/bin/perl # # perl script to run a job remotely # use RCGI; my($base_url); my($as_text); my($nph); my($method); my($username); my($password); my($user_agent); my($timeout); my(%cgi_form); map { if (/^\s*\-help/) { Usage(); } elsif (/^\s*\-astext/) { $as_text = 1; } elsif (/^\s*\-direct/) { $nph = 1; } elsif (/^\s*\-timeout/) { ($timeout) = /\=(\d+)\s*/; } elsif (/^\s*\-user_agent/) { ($user_agent) = /\=(.*)\s*/; } elsif (/^\s*\-method\=/) { $method = ( /\=[Gg][Ee][Tt]\s*/ ) ? 1 : 0; # print STDERR "Method is: ", (($method) ? 'GET' : 'POST'), "\n"; } elsif (/^\s*\-username\=/) { ($username) = /\=(.*)\s*/; } elsif (/^\s*\-password\=/) { ($password) = /\=(.*)\s*/; } else { if (!defined($base_url)) { $base_url = $_; } ($param, $value) = /^\s*([^\=]+)\=(.*)\s*$/; $cgi_form{$param} = $value; } } @ARGV; if (!defined($base_url)) { Usage(); } my($result); $result = RCGI::run_cgi_command($base_url, \%cgi_form, method => $method, username => $username, password => $password, timeout => $timeout, user_agent => $user_agent, nph => $nph); # Strip HTML codes if ($as_text) { my($new_result); # Split on and
to remove table's newlines $result =~ s/\r//gm; $result =~ s/\<[Tt][Aa][Bb][Ll][Ee][^\>]*\>/\r\/gm; $result =~ s/\<\/[Tt][Aa][Bb][Ll][Ee][^\>]*\>/\r/gm; map { if (/\/) { s/\n//gm; s/\<\/[Tt][DdHh][^\>]*\>[\s\n]*/\t/gm; s/\<\/[Tt][Rr][^\>]*\>[\s\n]*/\n/gm; s/\<[Bb][Rr][^\>]*\>[\s\n]*/ /gm; s/ +/ /gm; s/\t\n/\n/gm; } else { s/\<[Bb][Rr][^\>]*\>[\s\n]*/\n/gm; } s/\<[^\>]*\>//gm; s/\ / /gm; s/\"/\'/gm; $new_result .= $_; } split("\r",$result); $result = $new_result; } print $result; sub Usage { die "Usage is: run_cgi http://base_url [-direct] [-timeout=#secs] [-user_agent=user_agent] [-astext] [-method={GET|POST}] [-username=user -password=password] [[parameter=value] [...]]\n"; }