]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-init
v2writable: simplify barrier vs checkpoints
[public-inbox.git] / script / public-inbox-init
index fdad1366475a079120f064667719543d73450910..d6a6482631d327e7c8409e058f45b8eaff4c1d5b 100755 (executable)
@@ -15,7 +15,7 @@ use Cwd qw/abs_path/;
 
 sub x { system(@_) and die join(' ', @_). " failed: $?\n" }
 sub usage { print STDERR "Usage: $usage\n"; exit 1 }
-my $version = 1;
+my $version = undef;
 my %opts = ( 'V|version=i' => \$version );
 GetOptions(%opts) or usage();
 my $name = shift @ARGV or usage();
@@ -71,6 +71,21 @@ my $pfx = "publicinbox.$name";
 my @x = (qw/git config/, "--file=$pi_config_tmp");
 
 $mainrepo = abs_path($mainrepo);
+if (-f "$mainrepo/inbox.lock") {
+       if (!defined $version) {
+               $version = 2;
+       } elsif ($version != 2) {
+               die "$mainrepo is a -V2 repo, -V$version specified\n"
+       }
+} elsif (-d "$mainrepo/objects") {
+       if (!defined $version) {
+               $version = 1;
+       } elsif ($version != 1) {
+               die "$mainrepo is a -V1 repo, -V$version specified\n"
+       }
+}
+
+$version = 1 unless defined $version;
 
 if ($version >= 2) {
        require PublicInbox::V2Writable;
@@ -82,11 +97,7 @@ if ($version >= 2) {
                -primary_address => $address[0],
        };
        $ibx = PublicInbox::Inbox->new($ibx);
-       my $v2w = PublicInbox::V2Writable->new($ibx, 1);
-       $v2w->{parallel} = 0;
-       $v2w->idx_init;
-       $v2w->git_init(0);
-       $v2w->done;
+       PublicInbox::V2Writable->new($ibx, 1)->init_inbox(0);
 } elsif ($version == 1) {
        x(qw(git init -q --bare), $mainrepo);