package Commods;
use IO::File;
use HTTP::Request::Common ();
+use POSIX;
use strict;
use warnings;
our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
- @EXPORT = qw(&parse_info_clientside
+ @EXPORT = qw(&parse_info_clientside &fetch_with_rsync
&parse_info_serverside &parse_info_serverside_ocean
%oceans %commods %clients %routes %route_mysteries
&parse_pctb_commodmap %pctb_commodmap @pctb_commodmap
&pipethrough_prep &pipethrough_run
&pipethrough_run_along &pipethrough_run_finish
&pipethrough_run_gzip
- &cgipostform &yarrgpostform);
+ &cgipostform &yarrgpostform &cgi_get_caller);
%EXPORT_TAGS = ( );
@EXPORT_OK = qw();
return unless $yarrg;
my $master= fetch_with_rsync('info');
parse_info1($master,'s');
- parse_info1('_local-info.txt','s');
+ my $local= '_local-info.txt';
+ if (stat $local) {
+ parse_info1($local,'s');
+ } else {
+ die "$local $!" unless $! == &ENOENT;
+ }
}
sub fetch_with_rsync ($) {
$!=0; system 'rsync','-Lt','--',$remote,$local;
die "$? $!" if $! or $?;
}
+ return $local;
}
sub parse_info_maproutes ($$$) {
chomp($version);
$aref->{"${prefix}version"}= $version;
return $aref;
+ # clientname "ypp-sc-tools"
+ # clientversion 2.1-g2e06a26 [from git-describe --tags HEAD]
+ # clientfixes "lastpage" [space separated list]
}
sub pipethrough_prep () {
my ($ua, $form) = @_;
my $dest= $ENV{'YPPSC_YARRG_YARRG'};
get_our_version($form, 'client');
- return cgipostform($ua, "$dest/commod-update-receiver", $form);
+ die unless $dest =~ m,/$,;
+ return cgipostform($ua, "${dest}commod-update-receiver", $form);
}
sub cgipostform ($$$) {
$out =~ m,^Content-Type: text/plain.*\n\n, or die "$out ?";
return $';
} else {
- my $resp= $ua->request($url,$req);
+ my $resp= $ua->request($req);
die $resp->status_line unless $resp->is_success;
return $resp->content();
}