From c89fbee4be1ab3e3f5544cda2d88ec7472aaadb2 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 28 Nov 2022 05:31:15 +0000 Subject: [PATCH] lei_mirror: load most modules up-front lei lazy loads LeiMirror itself lazily, anyways, and it only supports HTTP(S) mirrors, so there's no point in delaying most of the modules it loads. Some of the inbox-specific and v2-specific stuff can be lazy-loaded, however, since this will support mirroring non-inbox repositories, too. --- lib/PublicInbox/LeiMirror.pm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index 1ca603b3..d0bc7384 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -6,7 +6,6 @@ package PublicInbox::LeiMirror; use strict; use v5.10.1; use parent qw(PublicInbox::IPC); -use PublicInbox::Config; use IO::Uncompress::Gunzip qw(gunzip $GunzipError); use IO::Compress::Gzip qw(gzip $GzipError); use PublicInbox::Spawn qw(popen_rd spawn); @@ -14,7 +13,13 @@ use File::Path (); use File::Temp (); use Fcntl qw(SEEK_SET O_CREAT O_EXCL O_WRONLY); use Carp qw(croak); -our %LIVE; +use URI; +use PublicInbox::Config; +use PublicInbox::Inbox; +use PublicInbox::LeiCurl; +use PublicInbox::OnDestroy; + +our %LIVE; # pid => callback sub _wq_done_wait { # dwaitpid callback (via wq_eof) my ($arg, $pid) = @_; @@ -191,6 +196,8 @@ sub index_cloned_inbox { # n.b. public-inbox-clone works w/o (SQLite || Xapian) # lei is useless without Xapian + SQLite if ($lei->{cmd} ne 'public-inbox-clone') { + require PublicInbox::InboxWritable; + require PublicInbox::Admin; my $ibx = delete($self->{ibx}) // { address => [ 'lei@example.com' ], version => $iv, @@ -389,6 +396,7 @@ failed to extract epoch number from $src $self->{-culled_manifest} = 1 if delete(@$m{@skip}); -d $dst || File::Path::mkpath($dst); + require PublicInbox::Lock; my $lk = bless { lock_path => "$dst/inbox.lock" }, 'PublicInbox::Lock'; my $fini = PublicInbox::OnDestroy->new($$, \&v2_done, $task); @@ -595,14 +603,6 @@ sub do_mirror { # via wq_io_do sub start { my ($cls, $lei, $src, $dst) = @_; my $self = bless { src => $src, dst => $dst }, $cls; - if ($src =~ m!https?://!) { - require URI; - require PublicInbox::LeiCurl; - } - require PublicInbox::Lock; - require PublicInbox::Inbox; - require PublicInbox::Admin; - require PublicInbox::InboxWritable; $lei->request_umask; my ($op_c, $ops) = $lei->workers_start($self, 1); $lei->{wq1} = $self; -- 2.44.0