lib/scripts/raw_dump
author blanchet
Tue, 22 Mar 2011 18:38:29 +0100
changeset 42063 a2a69b32d899
parent 38255 bf44a85c74cc
permissions -rwxr-xr-x
added "TPTP" theory with IsabelleP tactic, so that it is maintained alongside with Isabelle and that the CASC version of Isabelle is provided by Isabelle itself instead of being stored on the TPTP servers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38255
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     1
#!/usr/bin/env perl
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     2
#
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     3
# Author: Makarius
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     4
#
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     5
# raw_dump - direct copy without extra buffering
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     6
#
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     7
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     8
use warnings;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
     9
use strict;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    10
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    11
use IO::File;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    12
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    13
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    14
# args
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    15
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    16
my ($input, $output) = @ARGV;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    17
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    18
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    19
# prepare files
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    20
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    21
my $infile;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    22
my $outfile;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    23
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    24
if ($input eq "-") { $infile = *STDIN; }
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    25
else {
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    26
  $infile = new IO::File $input, "r";
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    27
  defined $infile || die $!;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    28
}
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    29
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    30
if ($output eq "-") { $outfile = *STDOUT; }
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    31
else {
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    32
  $outfile = new IO::File $output, "w";
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    33
  defined $outfile || die $!;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    34
}
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    35
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    36
binmode $infile;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    37
binmode $outfile;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    38
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    39
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    40
# main loop
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    41
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    42
my $chunk;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    43
while ((sysread $infile, $chunk, 65536), length $chunk > 0) {
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    44
  my $end = length $chunk;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    45
  my $offset = 0;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    46
  while ($offset < $end) {
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    47
    $offset += syswrite $outfile, $chunk, $end - $offset, $offset;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    48
  }
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    49
}
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    50
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    51
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    52
# cleanup
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    53
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    54
undef $infile;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    55
undef $outfile;
bf44a85c74cc uniform raw_dump for input/output fifos on Cygwin;
wenzelm
parents:
diff changeset
    56