# Copyright (C) 2019 all contributors
# License: AGPL-3.0+
# This interface wraps PublicInbox::Import and makes it closer
# to V2Writable
# Used to write to V1 inboxes (see L).
package PublicInbox::V1Writable;
use strict;
use warnings;
use base qw(PublicInbox::Import);
use PublicInbox::InboxWritable;
sub new {
my ($class, $ibx, $creat) = @_;
my $dir = $ibx->{mainrepo} or die "no mainrepo in inbox\n";
unless (-d $dir) {
if ($creat) {
PublicInbox::Import::init_bare($dir);
} else {
die "$dir does not exist\n";
}
}
$ibx = PublicInbox::InboxWritable->new($ibx);
$class->SUPER::new(undef, undef, undef, $ibx);
}
sub init_inbox {
my ($self, $partitions, $skip_epoch, $skip_artnum) = @_;
# TODO: honor skip_artnum
my $dir = $self->{-inbox}->{mainrepo} or die "no mainrepo in inbox\n";
PublicInbox::Import::init_bare($dir);
}
1;