'no-torsocks' => 'alias for --torsocks=no',
'save!' => "do not save a search for `lei up'",
'import-remote!' => 'do not memoize remote messages into local store',
+'import-before!' => 'do not import before writing to output (DANGEROUS)',
'type=s' => [ 'any|mid|git', 'disambiguate type' ],
use PublicInbox::MboxReader;
use PublicInbox::LeiToMail;
use PublicInbox::Spawn qw(popen_rd);
+use File::Path qw(make_path);
+use PublicInbox::IO qw(write_file);
my $exp = {
'<qp@example.com>' => eml_load('t/plack-qp.eml'),
'<testmessage@example.com>' => eml_load('t/utf8.eml'),
@fn = glob("$o/cur/*:2,S");
is(scalar(@fn), 1, "`seen' flag (but not `replied') set on Maildir file");
+{
+ $o = "$ENV{HOME}/dst-existing";
+ make_path(map { "$o/$_" } qw(new cur tmp));
+ my $bp = eml_load('t/data/binary.patch');
+ write_file '>', "$o/cur/binary-patch:2,S", $bp->as_string;
+ lei_ok qw(q --no-import-before m:qp@example.com -o), $o;
+ my @g = glob("$o/*/*");
+ is scalar(@g), 1, 'only newly imported message left';
+ is eml_load($g[0])->header_raw('Message-ID'), '<qp@example.com>';
+ lei qw(q m:binary-patch-test@example);
+ is $lei_out, "[null]\n", 'old message not imported';
+}
+
SKIP: {
$o = "$ENV{HOME}/fifo";
mkfifo($o, 0600) or skip("mkfifo not supported: $!", 1);
if ($_[0] =~ /\.gz\z/) {
gzip(\($_[1]), $_[0]) or BAIL_OUT 'gzip';
} else {
- open my $fh, '>', $_[0] or BAIL_OUT $!;
- print $fh $_[1] or BAIL_OUT $!;
- close $fh or BAIL_OUT;
+ write_file '>', $_[0], $_[1];
}
};