]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-init
watch: remove Filesys::Notify::Simple dependency
[public-inbox.git] / script / public-inbox-init
index 10d3ad45b2e6edb70ac51f809bb0b1d16d64a8b4..c7f3da6f28a5f8fe10511c41e32f890ca70b40f3 100755 (executable)
@@ -24,13 +24,13 @@ use File::Path qw/mkpath/;
 use Fcntl qw(:DEFAULT);
 use Cwd qw/abs_path/;
 
-my $version = undef;
-my $indexlevel = undef;
-my $skip_epoch;
+my ($version, $indexlevel, $skip_epoch, $skip_artnum, $jobs);
 my %opts = (
        'V|version=i' => \$version,
        'L|indexlevel=s' => \$indexlevel,
        'S|skip|skip-epoch=i' => \$skip_epoch,
+       'N|skip-artnum=i' => \$skip_artnum,
+       'j|jobs=i' => \$jobs,
 );
 GetOptions(%opts) or usage();
 PublicInbox::Admin::indexlevel_ok_or_die($indexlevel) if defined $indexlevel;
@@ -119,20 +119,20 @@ if (-f "$inboxdir/inbox.lock") {
        if (!defined $version) {
                $version = 2;
        } elsif ($version != 2) {
-               die "$inboxdir is a -V2 repo, -V$version specified\n"
+               die "$inboxdir is a -V2 inbox, -V$version specified\n"
        }
 } elsif (-d "$inboxdir/objects") {
        if (!defined $version) {
                $version = 1;
        } elsif ($version != 1) {
-               die "$inboxdir is a -V1 repo, -V$version specified\n"
+               die "$inboxdir is a -V1 inbox, -V$version specified\n"
        }
 }
 
 $version = 1 unless defined $version;
 
 if ($version == 1 && defined $skip_epoch) {
-       die "--skip-epoch is only supported for -V2 repos\n";
+       die "--skip-epoch is only supported for -V2 inboxes\n";
 }
 
 my $ibx = PublicInbox::Inbox->new({
@@ -144,7 +144,14 @@ my $ibx = PublicInbox::Inbox->new({
 });
 
 my $creat_opt = {};
-PublicInbox::InboxWritable->new($ibx, $creat_opt)->init_inbox(0, $skip_epoch);
+if (defined $jobs) {
+       die "--jobs is only supported for -V2 inboxes\n" if $version == 1;
+       die "--jobs=$jobs must be >= 1\n" if $jobs <= 0;
+       $creat_opt->{nproc} = $jobs;
+}
+
+$ibx = PublicInbox::InboxWritable->new($ibx, $creat_opt);
+$ibx->init_inbox(0, $skip_epoch, $skip_artnum);
 
 # needed for git prior to v2.1.0
 umask(0077) if defined $perm;