chiark / gitweb /
WIP commod-update-receiver testing
[ypp-sc-tools.db-test.git] / pctb / commod-results-processor
index cba01d9ac732a3713a3f658bf1910a456330f4dd..0286ab3fd99a2203584dac2bc665f48748d37a1f 100755 (executable)
@@ -193,29 +193,36 @@ sub main__bestprices () {
     }
 }
 
-sub bs_p_tsv ($) {
-    my ($bs) = @_;
+sub bs_p_tsv ($$) {
+    my ($f, $bs) = @_;
     if (exists $current->{$bs}{$stall}) {
        my $si= $current->{$bs}{$stall};
-       printf("\t%d\t%s", $si->{Price}, $si->{Qty}) or die $!;
+       printf($f "\t%d\t%s", $si->{Price}, $si->{Qty}) or die $!;
     } else {
-       printf("\t\t") or die $!;
+       printf($f "\t\t") or die $!;
     }
 }
 
-sub main__tsv () {
+sub write_tsv ($) {
+    my ($f) = @_;
     foreach $commod (sort keys %commod) {
        $current= $commod{$commod};
        my %stalls;
        map { $stalls{$_}=1; } keys %{ $current->{Buy}  };
        map { $stalls{$_}=1; } keys %{ $current->{Sell} };
        foreach $stall (sort keys %stalls) {
-           printf("%s\t%s", $commod, $stall) or die $!;
-           bs_p_tsv(Buy);
-           bs_p_tsv(Sell);
-           print("\n") or die $!;
+           printf($f "%s\t%s", $commod, $stall) or die $!;
+           bs_p_tsv($f, Buy);
+           bs_p_tsv($f, Sell);
+           print($f "\n") or die $!;
        }
     }
+    $f->error and die $!;
+    $f->flush or die $!;
+}
+
+sub main__tsv () {
+    write_tsv(\*STDOUT);
 }
 
 
@@ -426,30 +433,30 @@ sub save_upload_html ($$) {
 
 sub gzip ($) {
     my ($raw) = @_;
-    my $tf= IO::File::new_tmpfile() or die $!;
+    my $tf= pipethrough_prep();
     print $tf $raw or die $!;
-    $tf->flush or die $!;
-    $tf->seek(0,0) or die $!;
-    my $child= open GZ, "-|"; defined $child or die $!;
-    if (!$child) {
-       open STDIN, "<&", $tf;
-       exec 'gzip'; die $!;
-    }
-    my $r;
-    { undef $/; $!=0; $r= <GZ>; }
-    defined $r or die $!;
-    close GZ or die "$! $?";  die $? if $?;
-    return $r;
+    return pipethrough_run($tf,undef,'gzip','gzip');
 }
 
 sub main__uploadyaarg () {
-    my $ocean= $ENV{'YPPSC_OCEAN'};  die unless $ocean;
-    my $island= $ENV{'YPPSC_ISLAND'};  die unless $island;
-    my $content= {
-       'data' => [ undef, 'deduped.tsv.gz',
+    my %o;
+    $o{'ocean'}= $ENV{'YPPSC_OCEAN'} or die;
+    $o{'island'}= $ENV{'YPPSC_ISLAND'} or die;
+    $o{'timestamp'}= 10;
+    get_our_version(\%o, 'client');
+
+    my $tf= pipethrough_prep();
+    write_tsv($tf);
+    my $oz= pipethrough_run_gzip($tf);
+    $o{'data'}=  [ undef, 'deduped.tsv.gz',
                    Content_Type => 'application/octet-stream',
-                   Content => '' 
-]};
+                   Content => $oz ];
+
+    my $dest= $ENV{'YPPSC_YAARG_SUBMIT'};
+
+    my $respcontent= cgipostform($ua, "$dest/commod-update-receiver", \%o);
+
+    print $respcontent();
 }
 
 sub main__uploadpctb () {