-sub index_dir {
- my ($git_dir) = @_;
- -d $git_dir or die "$git_dir does not appear to be a git repository\n";
-
- system('git', "--git-dir=$git_dir", 'update-server-info') and
- die "git update-server-info failed for $git_dir";
- my $s = PublicInbox::SearchIdx->new($git_dir, 1);
- $s->index_sync;
+PublicInbox::Admin::require_or_die(keys %$mods);
+PublicInbox::Admin::progress_prepare($opt);
+for my $ibx (@ibxs) {
+ $ibx = PublicInbox::InboxWritable->new($ibx);
+ if ($opt->{compact} >= 2) {
+ PublicInbox::Xapcmd::run($ibx, 'compact', $compact_opt);
+ }
+ PublicInbox::Admin::index_inbox($ibx, undef, $opt);
+ PublicInbox::Xapcmd::run($ibx, 'compact', $compact_opt) if $compact_opt;