All pastes #10187 Raw Edit

fwsplit.pl

public text v1 · immutable
#10187 ·published 2005-04-24 11:28 UTC
rendered paste body
#!/usr/bin/perl
use strict;

my @args = @ARGV;
my $found = 0;
my $content;
my $code;
my $filesys;
undef $/;

my $filename = $args[0];
my $prefix = substr($filename,0,length($filename)-4);
print "Opening $filename\n";
open(INPUT,$filename) or die "File not found. Syntax: fwsplit.pl filename\n";
binmode(INPUT);
my @parts = split("hsqs", <INPUT>);
close INPUT;

length(@parts) < 2 or die "More than one match\n";

my @parts2 = split("HDR0", $parts[0]);
length(@parts2) < 2 or die "More than one match\n";

open (OUT,">$prefix.prefix");
binmode(OUT);
print OUT $parts2[0];
close OUT;

my $parts3hdr   =  substr($parts2[1],0,24);
my $parts3kernel = substr($parts2[1],24);
open (OUT,">$prefix.hdr");
binmode(OUT);
print OUT "HDR0".$parts3hdr;
close OUT;

open (OUT,">$prefix.kernel");
binmode(OUT);
print OUT $parts3kernel;
close OUT;

open (OUT,">$prefix.sqsh");
binmode(OUT);
print OUT "hsqs".$parts[1];
close OUT;


open (PREIN,"<$prefix.prefix");
binmode(PREIN);
open (HDRIN,"<$prefix.hdr");
binmode(HDRIN);
open (KRNIN,"<$prefix.kernel");
binmode(KRNIN);
open (FILESYSIN,"<$prefix.sqsh");
binmode(FILESYSIN);
open (COMPAREFILE,">comparefile.bin");
binmode(COMPAREFILE);

print COMPAREFILE (<PREIN>.<HDRIN>.<KRNIN>.<FILESYSIN>);        #append filesys to code
close PREIN;
close HDRIN;
close KRNIN;
close FILESYSIN;
close COMPAREFILE;
my $diffresult = `diff $filename comparefile.bin`;
if ($diffresult eq ""){
        print "\nEverything went fine\n";
}
else {
        print "\nWarning, comparison failed:\n$diffresult";
}