about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-02-25 10:11:04 +0000
committerEric Wong <e@80x24.org>2021-02-26 02:35:49 +0000
commitcf7c27cadd9ce7800beedc72513cf12fda77420f (patch)
tree375a378c8f79b7535b9accf2e3037726429b3d5d
parent9d1d7c2b505454fba331666a951e0f7997500b3c (diff)
downloadpublic-inbox-cf7c27cadd9ce7800beedc72513cf12fda77420f.tar.gz
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
-rw-r--r--Documentation/lei-import.pod2
-rw-r--r--lib/PublicInbox/LEI.pm8
-rw-r--r--lib/PublicInbox/LeiConvert.pm4
-rw-r--r--lib/PublicInbox/LeiImport.pm7
-rw-r--r--t/lei-import.t12
-rw-r--r--t/lei_to_mail.t2
6 files changed, 17 insertions, 18 deletions
diff --git a/Documentation/lei-import.pod b/Documentation/lei-import.pod
index 2051e6bc..ef20e2f6 100644
--- a/Documentation/lei-import.pod
+++ b/Documentation/lei-import.pod
@@ -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.
diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index 50665b3e..8eb96e78 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -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';
diff --git a/lib/PublicInbox/LeiConvert.pm b/lib/PublicInbox/LeiConvert.pm
index 32aa2edb..45d42c9c 100644
--- a/lib/PublicInbox/LeiConvert.pm
+++ b/lib/PublicInbox/LeiConvert.pm
@@ -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;
         }
diff --git a/lib/PublicInbox/LeiImport.pm b/lib/PublicInbox/LeiImport.pm
index 13e817d0..7f247b64 100644
--- a/lib/PublicInbox/LeiImport.pm
+++ b/lib/PublicInbox/LeiImport.pm
@@ -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
diff --git a/t/lei-import.t b/t/lei-import.t
index fa4fc504..edb0cd20 100644
--- a/t/lei-import.t
+++ b/t/lei-import.t
@@ -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;
diff --git a/t/lei_to_mail.t b/t/lei_to_mail.t
index 72b90700..7898cc48 100644
--- a/t/lei_to_mail.t
+++ b/t/lei_to_mail.t
@@ -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];