X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FApp%2FEdwardNG.pm;h=9a01dc03458e4a19f5b6c64e2f4cf402a4951cb9;hb=b26648112dbe0c44bae7ef96ed762157b8e3351b;hp=08b50eb827865e4b1e155cf2cee6f414dd605703;hpb=70f9c37db1acb0579cf25d611468ddbb338c2efa;p=app-edwardng.git diff --git a/lib/App/EdwardNG.pm b/lib/App/EdwardNG.pm index 08b50eb..9a01dc0 100644 --- a/lib/App/EdwardNG.pm +++ b/lib/App/EdwardNG.pm @@ -9,6 +9,7 @@ our @EXPORT = qw/process_message/; use Email::Sender::Simple qw/sendmail/; use File::Slurp qw/read_file/; +use File::Spec::Functions qw/rel2abs/; use Getopt::Long; use MIME::Entity; use MIME::Parser; @@ -36,25 +37,17 @@ sub first_part{ } sub process_message { - my ($msg) = @_; + my ($in) = @_; + my $msg; my $parser = MIME::Parser->new; $parser->decode_bodies(0); $parser->output_to_core(1); - if (ref $msg eq 'MIME::Entity') { - debug 'Got MIME::Entity'; - } elsif (ref $msg eq 'IO') { - debug 'Parsing from filehandle'; - $msg = $parser->parse($msg) - } elsif (ref $msg eq 'SCALAR') { - debug 'Parsing from string'; - $msg = $parser->parse_data($$msg) - } elsif (!ref $msg) { - debug "Parsing from file $msg"; - $msg = $parser->parse_open($msg) - } else { - die "Don't know how to parse $msg" - } + $msg = $in if ref $in eq 'MIME::Entity'; + $msg = $parser->parse ($in) if ref $in eq 'IO'; + $msg = $parser->parse_data ($in) if ref $in eq 'SCALAR'; + $msg = $parser->parse_open ($in) unless ref $in; + die "Don't know how to parse $in" unless $msg; if ($msg->mime_type ne 'multipart/signed' && $msg->mime_type ne 'multipart/encrypted') { # PGP/Inline requires decoding @@ -103,8 +96,10 @@ sub run { 'key=s' => \$ENV{EDWARDNG_KEY}, 'keydir=s' => \$ENV{EDWARDNG_KEYDIR}, 'passphrase=s' => \$ENV{EDWARDNG_PASSPHRASE}, + 'tmpl-path=s' => \$ENV{EDWARDNG_TMPL_PATH}, 'use-agent!' => \$ENV{EDWARDNG_USE_AGENT}, ); + my $tmpl_path = $ENV{EDWARDNG_TMPL_PATH} // 'en'; my $parser = MIME::Parser->new; $parser->decode_bodies(0); @@ -120,7 +115,7 @@ sub run { $params{plaintext} = first_part $params{decrypted} if $params{decrypted}; - my $tt = Template->new(INCLUDE_PATH => 'tmpl/en'); + my $tt = Template->new(INCLUDE_PATH => rel2abs $tmpl_path, 'tmpl'); my $data; $tt->process($tmpl, \%params, \$data); my $email = MIME::Entity->build(