}
sub init_inbox {
- my ($self, $parallel) = @_;
+ my ($self, $parallel, $skip) = @_;
$self->{parallel} = $parallel;
$self->idx_init;
my $epoch_max = -1;
git_dir_latest($self, \$epoch_max);
+ if (defined $skip && $epoch_max == -1) {
+ $epoch_max = $skip;
+ }
$self->git_init($epoch_max >= 0 ? $epoch_max : 0);
$self->done;
}
sub usage { print STDERR "Usage: $usage\n"; exit 1 }
my $version = undef;
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();
$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;
-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);
is(system(@cmd), 0, "-init -L $lvl");
is(read_indexlevel("v2$lvl"), $lvl, "indexlevel set to '$lvl'");
}
+
+ # loop for idempotency
+ for (1..2) {
+ @cmd = (pi_init, '-V2', '-S1', 'skip1', "$tmpdir/skip1",
+ qw(http://example.com/skip1 skip1@example.com));
+ is(system(@cmd), 0, "--skip 1");
+ my $gits = [ glob("$tmpdir/skip1/git/*.git") ];
+ is_deeply(["$tmpdir/skip1/git/1.git"], $gits, 'skip OK');
+ }
+
+
+ @cmd = (pi_init, '-V2', '--skip=2', 'skip2', "$tmpdir/skip2",
+ qw(http://example.com/skip2 skip2@example.com));
+ is(system(@cmd), 0, "--skip 2");
+ my $gits = [ glob("$tmpdir/skip2/git/*.git") ];
+ is_deeply(["$tmpdir/skip2/git/2.git"], $gits, 'skipping 2 works, too');
}
done_testing();