]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiToMail.pm
lei: All Local Externals: bare git dir for alternates
[public-inbox.git] / lib / PublicInbox / LeiToMail.pm
index 13b4f67275b696cb1b84148f00b60bebf25562d3..7e82164631b963157cb53f9bb3d983fad7506c16 100644 (file)
@@ -11,7 +11,6 @@ use PublicInbox::Lock;
 use PublicInbox::ProcessPipe;
 use PublicInbox::Spawn qw(which spawn popen_rd);
 use PublicInbox::LeiDedupe;
-use PublicInbox::Git;
 use PublicInbox::GitAsyncCat;
 use PublicInbox::PktOp qw(pkt_do);
 use Symbol qw(gensym);
@@ -170,9 +169,9 @@ sub reap_compress { # dwaitpid callback
 # { foo => '' } means "--foo" is passed to the command-line,
 # otherwise { foo => '--bar' } passes "--bar"
 our %zsfx2cmd = (
-       gz => [ qw(GZIP pigz gzip), { rsyncable => '', threads => '-p' } ],
+       gz => [ qw(GZIP pigz gzip), { rsyncable => '' } ],
        bz2 => [ 'bzip2', {} ],
-       xz => [ 'xz', { threads => '-T' } ],
+       xz => [ 'xz', {} ],
        # XXX does anybody care for these?  I prefer zstd on entire FSes,
        # so it's probably not necessary on a per-file basis
        # zst => [ 'zstd', { -default => [ qw(-q) ], # it's noisy by default
@@ -203,7 +202,7 @@ sub zsfx2cmd ($$$) {
                my $switch = $cmd_opt->{rsyncable} // next;
                push @cmd, '--'.($switch || $bool);
        }
-       for my $key (qw(threads)) { # support compression level?
+       for my $key (qw(rsyncable)) { # support compression level?
                my $switch = $cmd_opt->{$key} // next;
                my $val = $lei->{opt}->{$key} // next;
                push @cmd, $switch, $val;
@@ -246,8 +245,8 @@ sub _augment { # MboxReader eml_cb
 
 sub _mbox_augment_kw_maybe {
        my ($eml, $lei, $lse, $augment) = @_;
-       my @kw = PublicInbox::LeiStore::mbox_keywords($eml);
-       update_kw_maybe($lei, $lse, $eml, \@kw);
+       my $kw = PublicInbox::MboxReader::mbox_keywords($eml);
+       update_kw_maybe($lei, $lse, $eml, $kw);
        _augment($eml, $lei) if $augment;
 }
 
@@ -277,9 +276,9 @@ sub update_kw_maybe ($$$$) {
        return unless $lse;
        my $x = $lse->kw_changed($eml, $kw);
        if ($x) {
-               $lei->{sto}->ipc_do('set_eml', $eml, @$kw);
+               $lei->{sto}->ipc_do('set_eml', $eml, { kw => $kw });
        } elsif (!defined($x)) {
-               # TODO: xkw
+               $lei->{sto}->ipc_do('set_xkw', $eml, $kw);
        }
 }
 
@@ -637,23 +636,20 @@ sub poke_dst {
        my ($self) = @_;
        if ($self->{base_type} eq 'maildir') {
                my $t = time + 1;
-               utime($t, $t, "$self->{dst}/cur");
+               utime($t, $t, $self->{dst} . 'cur');
        }
 }
 
 sub write_mail { # via ->wq_io_do
-       my ($self, $git_dir, $smsg) = @_;
-       my $git = $self->{"$$\0$git_dir"} //= PublicInbox::Git->new($git_dir);
-       git_async_cat($git, $smsg->{blob}, \&git_to_mail,
+       my ($self, $smsg) = @_;
+       git_async_cat($self->{lei}->{ale}->git, $smsg->{blob}, \&git_to_mail,
                                [$self->{wcb}, $smsg]);
 }
 
 sub wq_atexit_child {
        my ($self) = @_;
        delete $self->{wcb};
-       for my $git (delete @$self{grep(/\A$$\0/, keys %$self)}) {
-               $git->async_wait_all;
-       }
+       $self->{lei}->{ale}->git->async_wait_all;
        $SIG{__WARN__} = 'DEFAULT';
 }