-my @x = (qw/git config/, "--file=$filename");
-$git_dir = abs_path($git_dir);
-x(qw(git init -q --bare), $git_dir);
+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;
+ 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);
+} elsif ($version == 1) {
+ x(qw(git init -q --bare), $mainrepo);
+
+ # set a reasonable default:
+ x(qw/git config/, "--file=$mainrepo/config",
+ 'repack.writeBitmaps', 'true');
+} else {
+ die "Unsupported -V/--version: $version\n";
+}
+