]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiMirror.pm
lei: drop redundant WQ EOF callbacks
[public-inbox.git] / lib / PublicInbox / LeiMirror.pm
index 23a2156c6f8e2cb7bf077ca1ec9bf1b10a3817bb..6bfa4b6f320ec582e000c4b8189a195ab6cb618b 100644 (file)
@@ -11,7 +11,7 @@ use PublicInbox::Spawn qw(popen_rd spawn run_die);
 use File::Temp ();
 use Fcntl qw(SEEK_SET O_CREAT O_EXCL O_WRONLY);
 
-sub do_finish_mirror { # dwaitpid callback
+sub _wq_done_wait { # dwaitpid callback (via wq_eof)
        my ($arg, $pid) = @_;
        my ($mrr, $lei) = @$arg;
        my $f = "$mrr->{dst}/mirror.done";
@@ -28,12 +28,6 @@ sub do_finish_mirror { # dwaitpid callback
        $lei->dclose;
 }
 
-sub _lei_wq_eof { # EOF callback for main daemon
-       my ($lei) = @_;
-       my $mrr = delete $lei->{wq1} or return $lei->fail;
-       $mrr->wq_wait_old(\&do_finish_mirror, $lei);
-}
-
 # for old installations without manifest.js.gz
 sub try_scrape {
        my ($self) = @_;
@@ -176,12 +170,12 @@ sub index_cloned_inbox {
                PublicInbox::Admin::progress_prepare($opt, $lei->{2});
                PublicInbox::Admin::index_inbox($ibx, undef, $opt);
        }
-       open my $x, '>', "$self->{dst}/mirror.done"; # for do_finish_mirror
+       open my $x, '>', "$self->{dst}/mirror.done"; # for _wq_done_wait
 }
 
 sub run_reap {
        my ($lei, $cmd, $opt) = @_;
-       $lei->qerr("# @$cmd" . ($opt->{-C} ? " (in $opt->{-C})" : ''));
+       $lei->qerr("# @$cmd");
        $opt->{pgid} = 0 if $lei->{sock};
        my $pid = spawn($cmd, undef, $opt);
        my $reap = PublicInbox::OnDestroy->new($lei->can('sigint_reap'), $pid);
@@ -276,11 +270,13 @@ sub try_manifest {
        $uri->path($path . '/manifest.js.gz');
        my $pdir = $lei->rel2abs($self->{dst});
        $pdir =~ s!/[^/]+/?\z!!;
-       my $ft = File::Temp->new(TEMPLATE => 'manifest-XXXX',
-                               UNLINK => 1, DIR => $pdir);
+       my $ft = File::Temp->new(TEMPLATE => 'm-XXXX',
+                               UNLINK => 1, DIR => $pdir, SUFFIX => '.tmp');
        my $fn = $ft->filename;
-       my $cmd = $curl->for_uri($lei, $uri, '-R', '-o', $fn);
-       my $opt = { 0 => $lei->{0}, 1 => $lei->{1}, 2 => $lei->{2} };
+       my ($bn) = ($fn =~ m!/([^/]+)\z!);
+       my $cmd = $curl->for_uri($lei, $uri, '-R', '-o', $bn);
+       my $opt = { -C => $pdir };
+       $opt->{$_} = $lei->{$_} for (0..2);
        my $cerr = run_reap($lei, $cmd, $opt);
        if ($cerr) {
                return try_scrape($self) if ($cerr >> 8) == 22; # 404 missing