]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WatchMaildir.pm
watchmaildir: ensure I:/W:/E: prefixes in warnings
[public-inbox.git] / lib / PublicInbox / WatchMaildir.pm
index 7d4139a5dcf983461193854495359c45556a97af..768e0efe508022a16f83e4d96a1cedf85972096f 100644 (file)
@@ -7,7 +7,7 @@ package PublicInbox::WatchMaildir;
 use strict;
 use warnings;
 use PublicInbox::Eml;
-use PublicInbox::InboxWritable qw(eml_from_path);
+use PublicInbox::InboxWritable qw(eml_from_path warn_ignore_cb);
 use PublicInbox::Filter::Base qw(REJECT);
 use PublicInbox::Spamcheck;
 use PublicInbox::Sigfd;
@@ -154,6 +154,7 @@ sub _remove_spam {
        # path must be marked as (S)een
        $path =~ /:2,[A-R]*S[T-Za-z]*\z/ or return;
        my $eml = eml_from_path($path) or return;
+       local $SIG{__WARN__} = warn_ignore_cb();
        $self->{config}->each_inbox(\&remove_eml_i, [ $self, $eml, $path ]);
 }
 
@@ -198,8 +199,8 @@ sub _try_path {
        }
        my $warn_cb = $SIG{__WARN__} || sub { print STDERR @_ };
        local $SIG{__WARN__} = sub {
-               $warn_cb->("path: $path\n");
-               $warn_cb->(@_);
+               my $pfx = ($_[0] // '') =~ /^([A-Z]: )/g ? $1 : '';
+               $warn_cb->($pfx, "path: $path\n", @_);
        };
        if (!ref($inboxes) && $inboxes eq 'watchspam') {
                return _remove_spam($self, $path);
@@ -287,7 +288,7 @@ sub cfg_intvl ($$$) {
 sub cfg_bool ($$$) {
        my ($cfg, $key, $url) = @_;
        my $orig = $cfg->urlmatch($key, $url) // return;
-       my $bool = PublicInbox::Config::_git_config_bool($orig);
+       my $bool = $cfg->git_bool($orig);
        warn "W: $key=$orig for $url is not boolean\n" unless defined($bool);
        $bool;
 }
@@ -393,6 +394,7 @@ sub imap_import_msg ($$$$) {
                        my $x = import_eml($self, $ibx, $eml);
                }
        } elsif ($inboxes eq 'watchspam') {
+               local $SIG{__WARN__} = warn_ignore_cb();
                my $eml = PublicInbox::Eml->new($raw);
                my $arg = [ $self, $eml, "$url UID:$uid" ];
                $self->{config}->each_inbox(\&remove_eml_i, $arg);
@@ -444,9 +446,9 @@ sub imap_fetch_all ($$$) {
        my ($uids, $batch);
        my $warn_cb = $SIG{__WARN__} || sub { print STDERR @_ };
        local $SIG{__WARN__} = sub {
+               my $pfx = ($_[0] // '') =~ /^([A-Z]: )/g ? $1 : '';
                $batch //= '?';
-               $warn_cb->("$url UID:$batch\n");
-               $warn_cb->(@_);
+               $warn_cb->("$pfx$url UID:$batch\n", @_);
        };
        my $err;
        do {
@@ -877,7 +879,8 @@ sub nntp_fetch_all ($$$) {
        my $warn_cb = $SIG{__WARN__} || sub { print STDERR @_ };
        my ($err, $art);
        local $SIG{__WARN__} = sub {
-               $warn_cb->("$url ", $art ? ("ARTICLE $art") : (), "\n", @_);
+               my $pfx = ($_[0] // '') =~ /^([A-Z]: )/g ? $1 : '';
+               $warn_cb->("$pfx$url ", $art ? ("ARTICLE $art") : (), "\n", @_);
        };
        my $inboxes = $self->{nntp}->{$url};
        my $last_art;