#!/usr/bin/perl -w
# Copyright (C) 2018 all contributors
# License: AGPL-3.0+
use strict;
use warnings;
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
use PublicInbox::Search;
use PublicInbox::Config;
use PublicInbox::InboxWritable;
use Cwd 'abs_path';
use PublicInbox::Xapcmd;
my $usage = "Usage: public-inbox-compact REPO_DIR\n";
my $dir = shift or die $usage;
my $config = eval { PublicInbox::Config->new };
my $ibx;
$dir = abs_path($dir);
if ($config) {
$config->each_inbox(sub {
$ibx = $_[0] if abs_path($_[0]->{mainrepo}) eq $dir
});
}
unless ($ibx) {
warn "W: $dir not configured in ".
PublicInbox::Config::default_file() . "\n";
$ibx = {
mainrepo => $dir,
name => 'ignored',
address => [ 'old@example.com' ],
};
$ibx = PublicInbox::Inbox->new($ibx);
}
$ibx = PublicInbox::InboxWritable->new($ibx);
# we rely on --no-renumber to keep docids synched to NNTP
PublicInbox::Xapcmd::run($ibx, [qw(xapian-compact --no-renumber)]);