From: Eric Wong Date: Sat, 18 Jan 2025 01:26:07 +0000 (+0000) Subject: init: move --skip-epoch handling to {-creat_opt} X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5a534ac44e3b5e4a3810a376effd1308d5827cf3;p=thirdparty%2Fpublic-inbox.git init: move --skip-epoch handling to {-creat_opt} Epoch skipping only makes sense at inbox creation, thus we'll bundle inbox creation options together to reduce potentionally confusing positional parameters. --- diff --git a/lib/PublicInbox/InboxWritable.pm b/lib/PublicInbox/InboxWritable.pm index a8239f491..f69aec754 100644 --- a/lib/PublicInbox/InboxWritable.pm +++ b/lib/PublicInbox/InboxWritable.pm @@ -50,13 +50,13 @@ sub _init_v1 { } sub init_inbox { - my ($self, $shards, $skip_epoch) = @_; + my ($self, $shards) = @_; if ($self->version == 1) { my $dir = assert_usable_dir($self); PublicInbox::Import::init_bare($dir); $self->with_umask(\&_init_v1, $self); } else { - importer($self)->init_inbox($shards, $skip_epoch); + importer($self)->init_inbox($shards); } } diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index b62d0477e..73c6dcccf 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -76,12 +76,13 @@ sub new { # public (for now?) sub init_inbox { - my ($self, $shards, $skip_epoch) = @_; + my ($self, $shards) = @_; if (defined $shards) { $self->{parallel} = 0 if $shards == 0; $self->{shards} = $shards if $shards > 0; } my $max = $self->{ibx}->max_git_epoch; + my $skip_epoch = ($self->{ibx}->{-creat_opt} // {})->{'skip-epoch'}; $max = $skip_epoch if (defined($skip_epoch) && !defined($max)); $self->{mg}->add_epoch($max // 0); $self->idx_init; diff --git a/script/public-inbox-init b/script/public-inbox-init index 1e479a3ac..b3f60bad7 100755 --- a/script/public-inbox-init +++ b/script/public-inbox-init @@ -34,7 +34,7 @@ EOF require PublicInbox::Admin; PublicInbox::Admin::require_or_die('-base'); -my ($version, $indexlevel, $skip_epoch, $jobs, $show_help); +my ($version, $indexlevel, $jobs, $show_help); my $skip_docdata; my $ng = ''; my (@c_extra, @chdir); @@ -42,7 +42,7 @@ my $creat_opt = {}; my %opts = ( 'V|version=i' => \$version, 'L|index-level|indexlevel=s' => \$indexlevel, - 'S|skip|skip-epoch=i' => \$skip_epoch, + 'S|skip|skip-epoch=i' => \($creat_opt->{'skip-epoch'}), 'skip-artnum=i' => \($creat_opt->{'skip-artnum'}), 'j|jobs=i' => \$jobs, 'ng|newsgroup=s' => \$ng, @@ -184,7 +184,7 @@ if (-f "$inboxdir/inbox.lock") { $version = 1 unless defined $version; -if ($version == 1 && defined $skip_epoch) { +if ($version == 1 && defined $creat_opt->{'skip-epoch'}) { die "--skip-epoch is only supported for -V2 inboxes\n"; } @@ -210,7 +210,7 @@ if ($skip_docdata) { die "--skip-docdata ignored with --indexlevel=basic\n"; $ibx->{-skip_docdata} = $skip_docdata; } -$ibx->init_inbox(0, $skip_epoch); +$ibx->init_inbox(0); my $f = "$inboxdir/description"; if (sysopen $fh, $f, O_CREAT|O_EXCL|O_WRONLY) {