Documentation/lei-import.pod | 2 +- lib/PublicInbox/LEI.pm | 8 ++++---- lib/PublicInbox/LeiConvert.pm | 4 ++-- lib/PublicInbox/LeiImport.pm | 7 +++---- t/lei-import.t | 12 ++++++------ t/lei_to_mail.t | 2 +- diff --git a/Documentation/lei-import.pod b/Documentation/lei-import.pod index 2051e6bc86c5fd36b441f01ced436bc8745d5fd2..ef20e2f6305cf6ff5a2dde907521a944ebe1f234 100644 --- a/Documentation/lei-import.pod +++ b/Documentation/lei-import.pod @@ -22,7 +22,7 @@ =head1 OPTIONS =over -=item -f MAIL_FORMAT, --format=MAIL_FORMAT +=item -F MAIL_FORMAT, --in-format=MAIL_FORMAT Message input format. Unless messages are given on C, using a format prefix with C is preferred. diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm index 50665b3e5411b742b338d85f71445a78e967380c..8eb96e78bc1a12593b15eb6de9175cdb91fc65eb 100644 --- a/lib/PublicInbox/LEI.pm +++ b/lib/PublicInbox/LEI.pm @@ -172,7 +172,7 @@ 'import' => [ 'LOCATION...|--stdin', 'one-time import/update from URL or filesystem', qw(stdin| offset=i recursive|r exclude=s include|I=s - format|f=s kw|keywords|flags! C=s@), + in-format|F=s kw|keywords|flags! C=s@), ], 'convert' => [ 'LOCATION...|--stdin', 'one-time conversion from URL or filesystem to another format', @@ -399,9 +399,9 @@ x_it($self, ($exit_code // 1) << 8); undef; } -sub check_input_format ($;$$) { - my ($self, $files, $opt_key) = @_; - $opt_key //= 'format'; +sub check_input_format ($;$) { + my ($self, $files) = @_; + my $opt_key = 'in-format'; my $fmt = $self->{opt}->{$opt_key}; if (!$fmt) { my $err = $files ? "regular file(s):\n@$files" : '--stdin'; diff --git a/lib/PublicInbox/LeiConvert.pm b/lib/PublicInbox/LeiConvert.pm index 32aa2edb0079fbc47f83e8d9c44d4d9313a1446a..45d42c9c76040376908756c0b6b64f7d5a711635 100644 --- a/lib/PublicInbox/LeiConvert.pm +++ b/lib/PublicInbox/LeiConvert.pm @@ -91,7 +91,7 @@ my $net = $lei->{net}; # NetWriter may be created by l2m $opt->{augment} = 1 unless $ovv->{dst} eq '/dev/stdout'; if ($opt->{stdin}) { @inputs and return $lei->fail("--stdin and @inputs do not mix"); - $lei->check_input_format(undef, 'in-format') or return; + $lei->check_input_format(undef) or return; $self->{0} = $lei->{0}; } # e.g. Maildir:/home/user/Mail/ or imaps://example.com/INBOX @@ -123,7 +123,7 @@ } elsif (-f $input) { push @f, $input } elsif (-d _) { push @d, $input } else { return $lei->fail("Unable to handle $input") } } - if (@f) { $lei->check_input_format(\@f, 'in-format') or return } + if (@f) { $lei->check_input_format(\@f) or return } if (@d) { # TODO: check for MH vs Maildir, here require PublicInbox::MdirReader; } diff --git a/lib/PublicInbox/LeiImport.pm b/lib/PublicInbox/LeiImport.pm index 13e817d0b7a54b9fc2057f1f6c7502616da3d730..7f247b640937bf4387ac353112ade62bff197976 100644 --- a/lib/PublicInbox/LeiImport.pm +++ b/lib/PublicInbox/LeiImport.pm @@ -68,8 +68,7 @@ $lei->check_input_format or return; $self->{0} = $lei->{0}; } - # TODO: do we need --format for non-stdin? - my $fmt = $lei->{opt}->{'format'}; + my $fmt = $lei->{opt}->{'in-format'}; # e.g. Maildir:/home/user/Mail/ or imaps://example.com/INBOX for my $input (@inputs) { my $input_path = $input; @@ -159,7 +158,7 @@ sub import_path_url { my ($self, $input) = @_; my $lei = $self->{lei}; - my $ifmt = lc($lei->{opt}->{'format'} // ''); + my $ifmt = lc($lei->{opt}->{'in-format'} // ''); # TODO auto-detect? if ($input =~ m!\Aimaps?://!i) { $lei->{net}->imap_each($input, \&_import_net, $lei->{sto}, @@ -191,7 +190,7 @@ sub import_stdin { my ($self) = @_; my $lei = $self->{lei}; - _import_fh($lei, delete $self->{0}, '', $lei->{opt}->{'format'}); + _import_fh($lei, delete $self->{0}, '', $lei->{opt}->{'in-format'}); } no warnings 'once'; # the following works even when LeiAuth is lazy-loaded diff --git a/t/lei-import.t b/t/lei-import.t index fa4fc5045d4d3783676b41e0c73d9f8ec7a4daf4..edb0cd206f8f63b86f8977f0a248c406f78f58fe 100644 --- a/t/lei-import.t +++ b/t/lei-import.t @@ -3,13 +3,13 @@ # Copyright (C) 2020-2021 all contributors # License: AGPL-3.0+ use strict; use v5.10.1; use PublicInbox::TestCommon; test_lei(sub { -ok(!lei(qw(import -f bogus), 't/plack-qp.eml'), 'fails with bogus format'); +ok(!lei(qw(import -F bogus), 't/plack-qp.eml'), 'fails with bogus format'); like($lei_err, qr/\bbogus unrecognized/, 'gave error message'); lei_ok(qw(q s:boolean), \'search miss before import'); unlike($lei_out, qr/boolean/i, 'no results, yet'); open my $fh, '<', 't/data/0001.patch' or BAIL_OUT $!; -lei_ok([qw(import -f eml -)], undef, { %$lei_opt, 0 => $fh }, +lei_ok([qw(import -F eml -)], undef, { %$lei_opt, 0 => $fh }, \'import single file from stdin') or diag $lei_err; close $fh; lei_ok(qw(q s:boolean), \'search hit after import'); @@ -26,7 +26,7 @@ push @cmp, $eml; }); is_deeply(\@cmp, $expect, 'got expected message in mboxrd'); } -lei_ok(qw(import -f eml), 't/data/message_embed.eml', +lei_ok(qw(import -F eml), 't/data/message_embed.eml', \'import single file by path'); my $str = <<''; @@ -35,7 +35,7 @@ Message-ID: Status: RO my $opt = { %$lei_opt, 0 => \$str }; -lei_ok([qw(import -f eml -)], undef, $opt, +lei_ok([qw(import -F eml -)], undef, $opt, \'import single file with keywords from stdin'); lei_ok(qw(q m:x@y)); my $res = json_utf8->decode($lei_out); @@ -43,13 +43,13 @@ is($res->[1], undef, 'only one result'); is_deeply($res->[0]->{kw}, ['seen'], "message `seen' keyword set"); $str =~ tr/x/v/; # v@y -lei_ok([qw(import --no-kw -f eml -)], undef, $opt, +lei_ok([qw(import --no-kw -F eml -)], undef, $opt, \'import single file with --no-kw from stdin'); lei(qw(q m:v@y)); $res = json_utf8->decode($lei_out); is($res->[1], undef, 'only one result'); is_deeply($res->[0]->{kw}, [], 'no keywords set'); -# see t/lei_to_mail.t for "import -f mbox*" +# see t/lei_to_mail.t for "import -F mbox*" }); done_testing; diff --git a/t/lei_to_mail.t b/t/lei_to_mail.t index 72b9070097a024fb282f94fc1e2b3e830020ae1c..7898cc48396c55a01bca352a495a2fb1cc9a223f 100644 --- a/t/lei_to_mail.t +++ b/t/lei_to_mail.t @@ -130,7 +130,7 @@ $raw; }; test_lei(sub { - ok(lei(qw(import -f), $mbox, $fn), 'imported mbox'); + ok(lei(qw(import -F), $mbox, $fn), 'imported mbox'); ok(lei(qw(q s:x)), 'lei q works') or diag $lei_err; my $res = json_utf8->decode($lei_out); my $x = $res->[0];