From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 101961F9F9 for ; Wed, 29 May 2019 08:29:03 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 09/10] index: support --verbose option Date: Wed, 29 May 2019 08:28:59 +0000 Message-Id: <20190529082900.9312-10-e@80x24.org> In-Reply-To: <20190529082900.9312-1-e@80x24.org> References: <20190529082900.9312-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: It doesn't implement progress of batches, yet, but it wires up the parsing of the command-line while preserving output compatibility. This output is NOT meant to be stable. --- lib/PublicInbox/Admin.pm | 18 ++++++++++++++++++ lib/PublicInbox/Xapcmd.pm | 14 +------------- script/public-inbox-index | 5 +++-- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/lib/PublicInbox/Admin.pm b/lib/PublicInbox/Admin.pm index 34aa312..07d8b57 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; diff --git a/lib/PublicInbox/Xapcmd.pm b/lib/PublicInbox/Xapcmd.pm index 999819c..7e3d47f 100644 --- a/lib/PublicInbox/Xapcmd.pm +++ b/lib/PublicInbox/Xapcmd.pm @@ -86,18 +86,6 @@ sub prepare_reindex ($$) { } } -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 @@ -132,7 +120,7 @@ sub process_queue { 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, .. ] } } diff --git a/script/public-inbox-index b/script/public-inbox-index index 40187b3..c0d637b 100755 --- a/script/public-inbox-index +++ b/script/public-inbox-index @@ -13,8 +13,8 @@ my $usage = "public-inbox-index INBOX_DIR"; 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; @@ -35,4 +35,5 @@ foreach my $ibx (@ibxs) { } PublicInbox::Admin::require_or_die(keys %$mods); +PublicInbox::Admin::progress_prepare($opt); PublicInbox::Admin::index_inbox($_, $opt) for @ibxs; -- EW