]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-init
admin: improve warnings and errors for missing modules
[public-inbox.git] / script / public-inbox-init
index 39f7497f3bf1fe6d239e7b2ad5a0067ea8d756ef..5516e798b61c3e0f3bd87fbfc0df19c3d6c97d0f 100755 (executable)
@@ -7,7 +7,10 @@ use strict;
 use warnings;
 my $usage = "public-inbox-init NAME REPO_DIR HTTP_URL ADDRESS [ADDRESS..]";
 use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
-use PublicInbox::Config;
+use PublicInbox::Admin;
+PublicInbox::Admin::require_or_die('-base');
+require PublicInbox::Config;
+require PublicInbox::Inbox;
 use File::Temp qw/tempfile/;
 use File::Basename qw/dirname/;
 use File::Path qw/mkpath/;
@@ -23,6 +26,7 @@ my %opts = ( 'V|version=i' => \$version,
             'S|skip=i' => \$skip,
 );
 GetOptions(%opts) or usage();
+PublicInbox::Admin::indexlevel_ok_or_die($indexlevel) if defined $indexlevel;
 my $name = shift @ARGV or usage();
 my $mainrepo = shift @ARGV or usage();
 my $http_url = shift @ARGV or usage();
@@ -103,23 +107,20 @@ if ($version == 1 && defined $skip) {
        die "--skip is only supported for -V2 repos\n";
 }
 
+my $ibx = PublicInbox::Inbox->new({
+       mainrepo => $mainrepo,
+       name => $name,
+       version => $version,
+       -primary_address => $address[0],
+       indexlevel => $indexlevel,
+});
+
 if ($version >= 2) {
        require PublicInbox::V2Writable;
-       require PublicInbox::Inbox;
-       my $ibx = {
-               mainrepo => $mainrepo,
-               name => $name,
-               version => $version,
-               -primary_address => $address[0],
-       };
-       $ibx = PublicInbox::Inbox->new($ibx);
        PublicInbox::V2Writable->new($ibx, 1)->init_inbox(0, $skip);
 } elsif ($version == 1) {
-       x(qw(git init -q --bare), $mainrepo);
-
-       # set a reasonable default:
-       x(qw/git config/, "--file=$mainrepo/config",
-               'repack.writeBitmaps', 'true');
+       require PublicInbox::V1Writable;
+       PublicInbox::V1Writable->new($ibx, 1)->init_inbox(0, $skip);
 } else {
        die "Unsupported -V/--version: $version\n";
 }