}
}
+sub progress_prepare ($) {
+ my ($opt) = @_;
+
+ # public-inbox-index defaults to quiet, -xcpdb and -compact do not
+ if (defined($opt->{quiet}) && $opt->{quiet} < 0) {
+ $opt->{quiet} = !$opt->{verbose};
+ }
+ if ($opt->{quiet}) {
+ open my $null, '>', '/dev/null' or
+ die "failed to open /dev/null: $!\n";
+ $opt->{1} = fileno($null); # suitable for spawn() redirect
+ $opt->{-dev_null} = $null;
+ } else {
+ $opt->{verbose} ||= 1;
+ $opt->{-progress} = sub { print STDERR @_ };
+ }
+}
+
1;
}
}
-sub progress_prepare ($) {
- my ($opt) = @_;
- if ($opt->{quiet}) {
- open my $null, '>', '/dev/null' or
- die "failed to open /dev/null: $!\n";
- $opt->{1} = fileno($null);
- $opt->{-dev_null} = $null;
- } else {
- $opt->{-progress} = sub { print STDERR @_ };
- }
-}
-
sub same_fs_or_die ($$) {
my ($x, $y) = @_;
return if ((stat($x))[0] == (stat($y))[0]); # 0 - st_dev
sub run {
my ($ibx, $task, $opt) = @_; # task = 'cpdb' or 'compact'
my $cb = \&${\"PublicInbox::Xapcmd::$task"};
- progress_prepare($opt ||= {});
+ PublicInbox::Admin::progress_prepare($opt ||= {});
my $dir = $ibx->{mainrepo} or die "no mainrepo in inbox\n";
runnable_or_die($XAPIAN_COMPACT) if $opt->{compact};
my $reindex; # v1:{ from => $x40 }, v2:{ from => [ $x40, $x40, .. ] } }
use PublicInbox::Admin;
PublicInbox::Admin::require_or_die('-index');
-my $opt = {};
-GetOptions($opt, qw(reindex jobs|j=i prune indexlevel|L=s))
+my $opt = { quiet => -1 };
+GetOptions($opt, qw(verbose|v+ reindex jobs|j=i prune indexlevel|L=s))
or die "bad command-line args\n$usage";
die "--jobs must be positive\n" if defined $opt->{jobs} && $opt->{jobs} <= 0;
}
PublicInbox::Admin::require_or_die(keys %$mods);
+PublicInbox::Admin::progress_prepare($opt);
PublicInbox::Admin::index_inbox($_, $opt) for @ibxs;