diff options
Diffstat (limited to 'lib/PublicInbox/Admin.pm')
-rw-r--r-- | lib/PublicInbox/Admin.pm | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/PublicInbox/Admin.pm b/lib/PublicInbox/Admin.pm index 34aa3129..07d8b572 100644 --- a/lib/PublicInbox/Admin.pm +++ b/lib/PublicInbox/Admin.pm @@ -167,4 +167,22 @@ sub index_inbox { } } +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; |