App-Bernard

 view release on metacpan or  search on metacpan

lib/App/Bernard/Magic/Fuzzaccept.pm  view on Meta::CPAN


sub new {
    return bless {};
}

sub handle {

    my ($self, $settings) = @_;

    if ($settings->{'output'}) {
	open OUTPUT, ">$settings->{'output'}"
	    or die "Can't open $settings->{'output'}: $!";
	binmode OUTPUT, ":utf8";
    }

    $settings->{'print'} = sub {
	my ($text) = @_;

	if ($settings->{'output'}) {
	    print OUTPUT $text;
	} else {
	    print $text;
	}
    };

    my $rebuilder = Locale::PO::Callback::rebuilder($settings->{'print'});

    my $filter = sub {
	my ($element) = @_;

lib/App/Bernard/Magic/Single.pm  view on Meta::CPAN

    if ($settings->{'inplace'}) {
	rename $settings->{'output'}, $settings->{'input'};
    }
}

sub handle {

    my ($self, $settings) = @_;

    if ($settings->{'output'}) {
	open OUTPUT, ">$settings->{'output'}"
	    or die "Can't open $settings->{'output'}: $!";
	binmode OUTPUT, ":utf8";
    }

    $settings->{'print'} = sub {
	my ($text) = @_;

	if ($settings->{'output'}) {
	    print OUTPUT $text;
	} else {
	    print $text;
	}
    };

    die "File $settings->{'input'} does not exist\n" unless -e $settings->{'input'};
    my ($pkg, $mimetype) = package_from_filetype($settings->{'input'});

    # TODO: Probably should query the package
    # about whether it accepts --in-place

lib/App/Bernard/Magic/Single.pm  view on Meta::CPAN

	$filename =~ s!::!/!g;
	require "$filename.pm";
    };
    if ($@) {
	die "$settings->{'file'} is of type $mimetype, which we cannot handle.\n";
    }

    $pkg->handle(scalar(read_file($settings->{'input'})),
		 $settings);

    close OUTPUT
	or die "Can't close $settings->{'output'}: $!"
	if $settings->{'output'};

    if ($settings->{'check'}) {
	my $result =
	    system "msgfmt -c $settings->{'output'} -o /dev/null";

	if ($result != 0) {
	    die "Check failed; aborting\n";
	}



( run in 0.295 second using v1.01-cache-2.11-cpan-4e96b696675 )