]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-init
Merge remote-tracking branch 'origin/viewvcs' into master
[public-inbox.git] / script / public-inbox-init
index 3ef6c3bdba2d33c7051fc67ae19b364652bc0e88..39f7497f3bf1fe6d239e7b2ad5a0067ea8d756ef 100755 (executable)
@@ -16,7 +16,12 @@ use Cwd qw/abs_path/;
 sub x { system(@_) and die join(' ', @_). " failed: $?\n" }
 sub usage { print STDERR "Usage: $usage\n"; exit 1 }
 my $version = undef;
-my %opts = ( 'V|version=i' => \$version );
+my $indexlevel = undef;
+my $skip;
+my %opts = ( 'V|version=i' => \$version,
+            'L|indexlevel=s' => \$indexlevel,
+            'S|skip=i' => \$skip,
+);
 GetOptions(%opts) or usage();
 my $name = shift @ARGV or usage();
 my $mainrepo = shift @ARGV or usage();
@@ -64,6 +69,13 @@ if (-e $pi_config) {
        }
 
        exit(1) if $conflict;
+
+       my $ibx = $cfg->lookup_name($name);
+       if ($ibx) {
+               if (!defined($indexlevel) && $ibx->{indexlevel}) {
+                       $indexlevel = $ibx->{indexlevel};
+               }
+       }
 }
 close $fh or die "failed to close $pi_config_tmp: $!\n";
 
@@ -87,6 +99,10 @@ if (-f "$mainrepo/inbox.lock") {
 
 $version = 1 unless defined $version;
 
+if ($version == 1 && defined $skip) {
+       die "--skip is only supported for -V2 repos\n";
+}
+
 if ($version >= 2) {
        require PublicInbox::V2Writable;
        require PublicInbox::Inbox;
@@ -97,7 +113,7 @@ if ($version >= 2) {
                -primary_address => $address[0],
        };
        $ibx = PublicInbox::Inbox->new($ibx);
-       PublicInbox::V2Writable->new($ibx, 1)->init_inbox(0);
+       PublicInbox::V2Writable->new($ibx, 1)->init_inbox(0, $skip);
 } elsif ($version == 1) {
        x(qw(git init -q --bare), $mainrepo);
 
@@ -115,5 +131,9 @@ foreach my $addr (@address) {
 x(@x, "$pfx.url", $http_url);
 x(@x, "$pfx.mainrepo", $mainrepo);
 
+if (defined($indexlevel)) {
+       x(@x, "$pfx.indexlevel", $indexlevel);
+}
+
 rename $pi_config_tmp, $pi_config or
        die "failed to rename `$pi_config_tmp' to `$pi_config': $!\n";