diff options
author | Eric Wong <e@80x24.org> | 2021-03-25 06:20:21 +0200 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-03-25 17:58:59 +0000 |
commit | 700f2675366ce6cf2cd39a00b5742ba6fea753e9 (patch) | |
tree | b61ee92e0ce7b42026dea97b08f64bf07b5df98a /lib | |
parent | a3e3a5f5f34f258744938e60639c0b4d7a362f60 (diff) | |
download | public-inbox-700f2675366ce6cf2cd39a00b5742ba6fea753e9.tar.gz |
While we were exiting with a error code, showing a successful "# mirrored $URL" message is misleading and wrong. Don't show success until everything is complete and the config is written.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/LeiMirror.pm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index d68cd6c1..c83386c6 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -12,8 +12,14 @@ use PublicInbox::Spawn qw(popen_rd spawn); sub do_finish_mirror { # dwaitpid callback my ($arg, $pid) = @_; my ($mrr, $lei) = @$arg; - if ($? == 0 && unlink("$mrr->{dst}/mirror.done")) { + my $f = "$mrr->{dst}/mirror.done"; + if ($?) { + $lei->child_error($?); + } elsif (!unlink($f)) { + $lei->err("unlink($f): $!"); + } else { $lei->add_external_finish($mrr->{dst}); + $lei->qerr("# mirrored $mrr->{src} => $mrr->{dst}"); } $lei->dclose; } @@ -262,8 +268,7 @@ sub do_mirror { # via wq_io_do return start_clone_url($self) if $self->{src} =~ m!://!; die "TODO: cloning local directories not supported, yet"; }; - return $lei->fail($@) if $@; - $lei->qerr("# mirrored $self->{src} => $self->{dst}"); + $lei->fail($@) if $@; } sub start { |