lib/scripts/raw_dump
author blanchet
Thu, 26 Aug 2010 09:23:21 +0200
changeset 38751 01c4d14b2a61
parent 38255 bf44a85c74cc
permissions -rwxr-xr-x
add a bonus for chained facts, since they are likely to be relevant; (especially in a Mirabelle run!) -- chained facts used to be included forcibly, then were treated as any other fact; the current approach seems more flexible

#!/usr/bin/env perl
#
# Author: Makarius
#
# raw_dump - direct copy without extra buffering
#

use warnings;
use strict;

use IO::File;


# args

my ($input, $output) = @ARGV;


# prepare files

my $infile;
my $outfile;

if ($input eq "-") { $infile = *STDIN; }
else {
  $infile = new IO::File $input, "r";
  defined $infile || die $!;
}

if ($output eq "-") { $outfile = *STDOUT; }
else {
  $outfile = new IO::File $output, "w";
  defined $outfile || die $!;
}

binmode $infile;
binmode $outfile;


# main loop

my $chunk;
while ((sysread $infile, $chunk, 65536), length $chunk > 0) {
  my $end = length $chunk;
  my $offset = 0;
  while ($offset < $end) {
    $offset += syswrite $outfile, $chunk, $end - $offset, $offset;
  }
}


# cleanup

undef $infile;
undef $outfile;