]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiExportKw.pm
get rid of unnecessary bytes::length usage
[public-inbox.git] / lib / PublicInbox / LeiExportKw.pm
index b31b065fe4f95fb062650a7218dc048a8f21c122..42a5ff2269d0a16a2875ccc0c9188c08ea4d4b8f 100644 (file)
@@ -10,8 +10,7 @@ use Errno qw(EEXIST ENOENT);
 
 sub export_kw_md { # LeiMailSync->each_src callback
        my ($oidbin, $id, $self, $mdir) = @_;
-       my $oidhex = unpack('H*', $oidbin);
-       my $sto_kw = $self->{lse}->oid_keywords($oidhex) or return;
+       my $sto_kw = $self->{lse}->oidbin_keywords($oidbin) or return;
        my $bn = $$id;
        my ($md_kw, $unknown, @try);
        if ($bn =~ s/:2,([a-zA-Z]*)\z//) {
@@ -57,13 +56,13 @@ sub export_kw_md { # LeiMailSync->each_src callback
        # both tries failed
        my $e = $!;
        my $orig = '['.join('|', @fail).']';
+       my $oidhex = unpack('H*', $oidbin);
        $lei->child_error(1, "link($orig, $dst) ($oidhex): $e");
 }
 
 sub export_kw_imap { # LeiMailSync->each_src callback
        my ($oidbin, $id, $self, $mic) = @_;
-       my $oidhex = unpack('H*', $oidbin);
-       my $sto_kw = $self->{lse}->oid_keywords($oidhex) or return;
+       my $sto_kw = $self->{lse}->oidbin_keywords($oidbin) or return;
        $self->{imap_mod_kw}->($self->{nwr}, $mic, $id, [ keys %$sto_kw ]);
 }
 
@@ -94,36 +93,8 @@ EOM
 lei mail_sync uninitialized, see lei-import(1)
 EOM
        my $opt = $lei->{opt};
-       my $all = $opt->{all};
-       if (defined $all) { # --all=<local|remote>
-               my %x = map { $_ => $_ } split(/,/, $all);
-               my @ok = grep(defined, delete(@x{qw(local remote), ''}));
-               my @no = keys %x;
-               if (@no) {
-                       @no = (join(',', @no));
-                       return $lei->fail(<<EOM);
---all=@no not accepted (must be `local' and/or `remote')
-EOM
-               }
-               my (%seen, @inc);
-               my @all = $lms->folders;
-               for my $ok (@ok) {
-                       if ($ok eq 'local') {
-                               @inc = grep(!m!\A[a-z0-9\+]+://!i, @all);
-                       } elsif ($ok eq 'remote') {
-                               @inc = grep(m!\A[a-z0-9\+]+://!i, @all);
-                       } elsif ($ok ne '') {
-                               return $lei->fail("--all=$all not understood");
-                       } else {
-                               @inc = @all;
-                       }
-                       for (@inc) {
-                               push(@folders, $_) unless $seen{$_}++;
-                       }
-               }
-               return $lei->fail(<<EOM) if !@folders;
-no --mail-sync folders known to lei
-EOM
+       if (defined(my $all = $opt->{all})) { # --all=<local|remote>
+               $lms->group2folders($lei, $all, \@folders) or return;
        } else {
                my $err = $lms->arg2folder($lei, \@folders);
                $lei->qerr(@{$err->{qerr}}) if $err->{qerr};
@@ -160,7 +131,7 @@ EOM
        $lei->{wq1} = $self;
        $lei->{-err_type} = 'non-fatal';
        net_merge_all_done($self) unless $lei->{auth};
-       $op_c->op_wait_event($ops); # calls net_merge_all_done if $lei->{auth}
+       $lei->wait_wq_events($op_c, $ops); # net_merge_all_done if !{auth}
 }
 
 sub _complete_export_kw {