]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiLsMailSync.pm
No ext_urls
[public-inbox.git] / lib / PublicInbox / LeiLsMailSync.pm
index 505c0b3f55fcd95202c87ef3701f54785fd52730..8da0c284799a81418aff2d1ef0fd58513728bffb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # front-end for the "lei ls-mail-sync" sub-command
@@ -9,11 +9,13 @@ use PublicInbox::LeiMailSync;
 
 sub lei_ls_mail_sync {
        my ($lei, $filter) = @_;
-       my $sto = $lei->_lei_store or return;
-       my $lms = $sto->search->lms or return;
+       my $lms = $lei->lms or return;
        my $opt = $lei->{opt};
        my $re = $opt->{globoff} ? undef : $lei->glob2re($filter // '*');
-       $re //= qr/\Q$filter\E/;
+       $re .= '/?\\z' if defined $re;
+       $re //= index($filter, '/') < 0 ?
+                       qr!/\Q$filter\E/?\z! : # exact basename match
+                       qr/\Q$filter\E/; # grep -F semantics
        my @f = $lms->folders;
        @f = $opt->{'invert-match'} ? grep(!/$re/, @f) : grep(/$re/, @f);
        if ($opt->{'local'} && !$opt->{remote}) {