]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei: simplify internal arg2folder usage
authorEric Wong <e@80x24.org>
Tue, 21 Sep 2021 07:41:51 +0000 (07:41 +0000)
committerEric Wong <e@80x24.org>
Tue, 21 Sep 2021 19:18:35 +0000 (19:18 +0000)
We can set opt->{quiet} for (internal) 'note-event' command
to quiet ->qerr, since we use ->qerr everywhere else.  And
we'll just die() instead of setting a ->{fail} message, since
eval + die are more inline with the rest of our Perl code.

lib/PublicInbox/LEI.pm
lib/PublicInbox/LeiExportKw.pm
lib/PublicInbox/LeiForgetMailSync.pm
lib/PublicInbox/LeiInspect.pm
lib/PublicInbox/LeiLcat.pm
lib/PublicInbox/LeiMailSync.pm
lib/PublicInbox/LeiNoteEvent.pm
lib/PublicInbox/LeiRefreshMailSync.pm

index 148a5b1e530d00e0ab73d02aa0f214532d28ac0b..f94bfa451c656491cd025c6c2674b4d35b414e21 100644 (file)
@@ -1194,7 +1194,7 @@ sub dir_idle_handler ($) { # PublicInbox::DirIdle callback
                                $lei->dispatch('note-event',
                                                "maildir:$mdir", $nc, $bn, $fn);
                        };
-                       warn "E note-event $f: $@\n" if $@;
+                       warn "E: note-event $f: $@\n" if $@;
                }
        }
        if ($ev->can('cancel') && ($ev->IN_IGNORE || $ev->IN_UNMOUNT)) {
index 8c5fbc13079eedc83445df7382a3432a3f268ec6..d5533a2a0ae213fdcd0de873f05e279e23334272 100644 (file)
@@ -92,9 +92,7 @@ EOM
                $lms->group2folders($lei, $all, \@folders) or return;
                @folders = grep(/\A(?:maildir|imaps?):/i, @folders);
        } else {
-               my $err = $lms->arg2folder($lei, \@folders);
-               $lei->qerr(@{$err->{qerr}}) if $err->{qerr};
-               return $lei->fail($err->{fail}) if $err->{fail};
+               $lms->arg2folder($lei, \@folders); # may die
        }
        $lms->lms_pause;
        my $self = bless { lse => $sto->search, lms => $lms }, __PACKAGE__;
index 701f48d2fbbb278e4bffcb79871d7608ba1fa630..d85616cc425055aee16aee661b024cd59c77ca6e 100644 (file)
@@ -16,9 +16,7 @@ sub lei_forget_mail_sync {
        my ($lei, @folders) = @_;
        my $lms = $lei->lms or return;
        $lms->lms_write_prepare;
-       my $err = $lms->arg2folder($lei, \@folders);
-       $lei->qerr(@{$err->{qerr}}) if $err->{qerr};
-       return $lei->fail($err->{fail}) if $err->{fail};
+       $lms->arg2folder($lei, \@folders); # may die
        $lms->forget_folders(@folders);
 }
 
index 722ba5b2a161f3b4abcb38af901844021a0869b1..8e1285808fa35a3dd9093bbafa0984a38fac7d6c 100644 (file)
@@ -46,10 +46,9 @@ sub inspect_nntp_range {
        my $ent = {};
        my $ret = { "$uri" => $ent };
        my $lms = $lei->lms or return $ret;
-       my $err = $lms->arg2folder($lei, my $folders = [ $$uri ]);
-       if ($err) {
-               $lei->qerr(@{$err->{qerr}}) if $err->{qerr};
-       }
+       my $folders = [ $$uri ];
+       eval { $lms->arg2folder($lei, $folders) };
+       $lei->qerr("# no folders match $$uri (non-fatal)") if $@;
        $end //= $beg;
        for my $art ($beg..$end) {
                my @oidhex = map { unpack('H*', $_) }
@@ -65,14 +64,8 @@ sub inspect_sync_folder ($$) {
        my $ent = {};
        my $lms = $lei->lms or return $ent;
        my $folders = [ $folder ];
-       my $err = $lms->arg2folder($lei, $folders);
-       if ($err) {
-               if ($err->{fail}) {
-                       $lei->qerr("# no folders match $folder (non-fatal)");
-                       @$folders = ();
-               }
-               $lei->qerr(@{$err->{qerr}}) if $err->{qerr};
-       }
+       eval { $lms->arg2folder($lei, $folders) };
+       $lei->qerr("# no folders match $folder (non-fatal)") if $@;
        for my $f (@$folders) {
                $ent->{$f} = $lms->location_stats($f); # may be undef
        }
index 8f8e83bce12fec916b371c87baa5ddc8c5111e86..ccb1823d8824b0a32b80db979aa9528dd1d46e9f 100644 (file)
@@ -15,9 +15,8 @@ sub lcat_folder ($$$) {
        my ($lei, $lms, $folder) = @_;
        $lms //= $lei->lms or return;
        my $folders = [ $folder];
-       my $err = $lms->arg2folder($lei, $folders);
-       $lei->qerr(@{$err->{qerr}}) if $err && $err->{qerr};
-       if ($err && $err->{fail}) {
+       eval { $lms->arg2folder($lei, $folders) };
+       if ($@) {
                $lei->child_error(0, "# unknown folder: $folder");
        } else {
                for my $f (@$folders) {
index 3e725d309f0e7af60812ddac4e44503c32dcbebd..f83c7de2c064ab0355f2dda7f07a31255d94d1ed 100644 (file)
@@ -437,7 +437,7 @@ sub arg2folder {
        my ($self, $lei, $folders) = @_;
        my @all = $self->folders;
        my %all = map { $_ => 1 } @all;
-       my ($err, @no);
+       my @no;
        for (@$folders) {
                next if $all{$_}; # ok
                if (m!\A(maildir|mh):(.+)!i) {
@@ -454,7 +454,7 @@ sub arg2folder {
                        my $res = match_imap_url($self, $orig, \@all);
                        if (ref $res) {
                                $_ = $$res;
-                               push(@{$err->{qerr}}, <<EOM);
+                               $lei->qerr(<<EOM);
 # using `$res' instead of `$orig'
 EOM
                        } else {
@@ -466,7 +466,7 @@ EOM
                        my $res = match_nntp_url($self, $orig, \@all);
                        if (ref $res) {
                                $_ = $$res;
-                               push(@{$err->{qerr}}, <<EOM);
+                               $lei->qerr(<<EOM);
 # using `$res' instead of `$orig'
 EOM
                        } else {
@@ -479,12 +479,11 @@ EOM
        }
        if (@no) {
                my $no = join("\n\t", @no);
-               $err->{fail} = <<EOF;
+               die <<EOF;
 No sync information for: $no
 Run `lei ls-mail-sync' to display valid choices
 EOF
        }
-       $err;
 }
 
 sub forget_folders {
@@ -549,12 +548,8 @@ sub imap_oidhex {
        my $mailbox_uri = $uid_uri->clone;
        $mailbox_uri->uid(undef);
        my $folders = [ $$mailbox_uri ];
-       if (my $err = $self->arg2folder($lei, $folders)) {
-               if ($err->{fail}) {
-                       $lei->qerr("# no sync information for $mailbox_uri");
-               }
-               $lei->qerr(@{$err->{qerr}}) if $err->{qerr};
-       }
+       eval { $self->arg2folder($lei, $folders) };
+       $lei->qerr("# no sync information for $mailbox_uri") if $@;
        map { unpack('H*',$_) } num_oidbin($self, $folders->[0], $uid_uri->uid)
 }
 
index a0591a094ea851125117e4b89719d5327d01dd42..43d5ed0f099e88f8dbc16b2949d70c191b61da68 100644 (file)
@@ -68,8 +68,9 @@ sub lei_note_event {
        return flush_lei($lei) if $folder eq 'done'; # special case
        my $lms = $lei->lms or return;
        $lms->lms_write_prepare if $new_cur eq ''; # for ->clear_src below
-       my $err = $lms->arg2folder($lei, [ $folder ]);
-       return if $err->{fail};
+       $lei->{opt}->{quiet} = 1;
+       eval { $lms->arg2folder($lei, [ $folder ]) };
+       return if $@;
        my $state = $cfg->get_1("watch.$folder", 'state') // 'tag-rw';
        return if $state eq 'pause';
        return $lms->clear_src($folder, \$bn) if $new_cur eq '';
index 92673492d1e14ca445dd0cf00ce2855de6ae270d..51e89b23e1fa79870d8b33b69ddbb4ace3bf81c8 100644 (file)
@@ -74,9 +74,7 @@ EOM
        if (defined(my $all = $lei->{opt}->{all})) {
                $lms->group2folders($lei, $all, \@folders) or return;
        } else {
-               my $err = $lms->arg2folder($lei, \@folders);
-               $lei->qerr(@{$err->{qerr}}) if $err->{qerr};
-               return $lei->fail($err->{fail}) if $err->{fail};
+               $lms->arg2folder($lei, \@folders); # may die
        }
        $lms->lms_pause; # must be done before fork
        $sto->write_prepare($lei);