imapsync/Mail-IMAPClient-3.25/prepare_dist
Nick Bebout 2ed353bb71 1.315
2011-03-12 02:44:53 +00:00

41 lines
942 B
Perl
Executable file

#!/usr/bin/perl
use warnings;
use strict;
use Parse::RecDescent 1.94;
use File::Copy qw/move/;
sub read_file {
my $file = shift;
local( $/, *FH );
open( FH, $file ) or return undef;
return <FH>;
}
build_parser 'lib/Mail/IMAPClient/BodyStructure/Parse.grammar'
, 'Mail::IMAPClient::BodyStructure::Parse';
build_parser 'lib/Mail/IMAPClient/Thread.grammar'
, 'Mail::IMAPClient::Thread';
sub build_parser {
my ($grammarfn, $package) = @_;
print "* building $package\n";
my $grammar = read_file $grammarfn
or die "cannot read grammar from $grammarfn: $!\n";
Parse::RecDescent->Precompile($grammar, $package);
# clumpsy output by Parse::RecDescent
my $outfn = $package . '.pm';
$outfn =~ s/.*\:\://;
my $realfn = $grammarfn;
$realfn =~ s/\.\w+$/.pm/;
move $outfn, $realfn
or die "cannot move $outfn to $realfn: $!\n";
}