-sub index_dir {
- my ($repo) = @_;
- if (!ref $repo && ! -d $repo) {
- die "$repo does not appear to be an inbox repository\n";
- }
- if (ref($repo) && ($repo->{version} || 1) == 2) {
- eval { require PublicInbox::V2Writable };
- die "v2 requirements not met: $@\n" if $@;
- my $v2w = eval {
- $jobs and local $ENV{NPROC} = $jobs;
- PublicInbox::V2Writable->new($repo);
- };
- if (defined $jobs) {
- if ($jobs == 0) {
- $v2w->{parallel} = 0;
- } else {
- my $n = $v2w->{partitions};
- if ($jobs != ($n + 1)) {
- warn
-"Unable to respect --jobs=$jobs, inbox was created with $n partitions\n";
- }
- }
- }
- local $SIG{__WARN__} = sub {
- print STDERR $v2w->{current_info}, ': ', @_;
- };
- $v2w->index_sync({ reindex => $reindex, prune => $prune });
- } else {
- my $s = PublicInbox::SearchIdx->new($repo, 1);
- $s->index_sync({ reindex => $reindex });
- }
-}
+PublicInbox::Admin::require_or_die(keys %$mods);
+PublicInbox::Admin::progress_prepare($opt);
+PublicInbox::Admin::index_inbox($_, $opt) for @ibxs;