]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei import: use --in-format/-F for consistency
authorEric Wong <e@80x24.org>
Thu, 25 Feb 2021 10:11:04 +0000 (10:11 +0000)
committerEric Wong <e@80x24.org>
Fri, 26 Feb 2021 02:35:49 +0000 (02:35 +0000)
Since we recommend $IN_FORMAT:$LOCATION, this is hopefully not
intrusive (not that this is released software, yet).  This is
to be consistent with "lei convert" usage.

We'll keep "-f" only for output formats, since that is used
for "lei q" and "lei convert" for outputs

Documentation/lei-import.pod
lib/PublicInbox/LEI.pm
lib/PublicInbox/LeiConvert.pm
lib/PublicInbox/LeiImport.pm
t/lei-import.t
t/lei_to_mail.t

index 2051e6bc86c5fd36b441f01ced436bc8745d5fd2..ef20e2f6305cf6ff5a2dde907521a944ebe1f234 100644 (file)
@@ -22,7 +22,7 @@ TODO: Update when URL support is added.
 
 =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<stdin>, using a
 format prefix with C<LOCATION> is preferred.
index 50665b3e5411b742b338d85f71445a78e967380c..8eb96e78bc1a12593b15eb6de9175cdb91fc65eb 100644 (file)
@@ -172,7 +172,7 @@ our %CMD = ( # sorted in order of importance/use:
 '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 @@ sub fail ($$;$) {
        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';
index 32aa2edb0079fbc47f83e8d9c44d4d9313a1446a..45d42c9c76040376908756c0b6b64f7d5a711635 100644 (file)
@@ -91,7 +91,7 @@ sub call { # the main "lei convert" method
        $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 @@ sub call { # the main "lei convert" method
                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;
        }
index 13e817d0b7a54b9fc2057f1f6c7502616da3d730..7f247b640937bf4387ac353112ade62bff197976 100644 (file)
@@ -68,8 +68,7 @@ sub call { # the main "lei import" method
                $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_net { # imap_each, nntp_each cb
 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 @@ EOM
 sub import_stdin {
        my ($self) = @_;
        my $lei = $self->{lei};
-       _import_fh($lei, delete $self->{0}, '<stdin>', $lei->{opt}->{'format'});
+       _import_fh($lei, delete $self->{0}, '<stdin>', $lei->{opt}->{'in-format'});
 }
 
 no warnings 'once'; # the following works even when LeiAuth is lazy-loaded
index fa4fc5045d4d3783676b41e0c73d9f8ec7a4daf4..edb0cd206f8f63b86f8977f0a248c406f78f58fe 100644 (file)
@@ -3,13 +3,13 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 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 @@ lei_ok(qw(q s:boolean -f mboxrd), \'blob accessible after import');
        });
        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: <x@y>
 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;
index 72b9070097a024fb282f94fc1e2b3e830020ae1c..7898cc48396c55a01bca352a495a2fb1cc9a223f 100644 (file)
@@ -130,7 +130,7 @@ my $orig = do {
 };
 
 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];