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,AWL,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 49F351FB05 for ; Sat, 16 Oct 2021 01:01:04 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 09/12] lei_overview: die rather than lei->fail Date: Sat, 16 Oct 2021 01:01:00 +0000 Message-Id: <20211016010103.30825-10-e@80x24.org> In-Reply-To: <20211016010103.30825-1-e@80x24.org> References: <20211016010103.30825-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This will make our code more flexible in case it gets used in non-lei things. --- lib/PublicInbox/LEI.pm | 2 +- lib/PublicInbox/LeiOverview.pm | 24 +++++++++++------------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm index 511b2c1d03a7..876598f9530e 100644 --- a/lib/PublicInbox/LEI.pm +++ b/lib/PublicInbox/LEI.pm @@ -1108,7 +1108,7 @@ sub accept_dispatch { # Listener {post_accept} callback my %env = map { split(/=/, $_, 2) } splice(@argv, $argc); $self->{env} = \%env; eval { dispatch($self, @argv) }; - send($sock, $@, MSG_EOR) if $@; + $self->fail($@) if $@; } sub dclose { diff --git a/lib/PublicInbox/LeiOverview.pm b/lib/PublicInbox/LeiOverview.pm index 223db22244ec..1b9dc9701c95 100644 --- a/lib/PublicInbox/LeiOverview.pm +++ b/lib/PublicInbox/LeiOverview.pm @@ -37,16 +37,16 @@ sub ovv_out_lk_cancel ($) { unlink($lock_path); } -sub detect_fmt ($$) { - my ($lei, $dst) = @_; +sub detect_fmt ($) { + my ($dst) = @_; if ($dst =~ m!\A([:/]+://)!) { - $lei->fail("$1 support not implemented, yet\n"); + die "$1 support not implemented, yet\n"; } elsif (!-e $dst || -d _) { 'maildir'; # the default TODO: MH? } elsif (-f _ || -p _) { - $lei->fail("unable to determine mbox family of $dst\n"); + die "unable to determine mbox family of $dst\n"; } else { - $lei->fail("unable to determine format of $dst\n"); + die "unable to determine format of $dst\n"; } } @@ -60,20 +60,19 @@ sub new { my $fmt = $opt->{$ofmt_key}; $fmt = lc($fmt) if defined $fmt; if ($dst =~ m!\A([a-z0-9\+]+)://!is) { - defined($fmt) and return $lei->fail(<<""); + defined($fmt) and die <<""; --$ofmt_key=$fmt invalid with URL $dst $fmt = lc $1; } elsif ($dst =~ s/\A([a-z0-9]+)://is) { # e.g. Maildir:/home/user/Mail/ my $ofmt = lc $1; $fmt //= $ofmt; - return $lei->fail(<<"") if $fmt ne $ofmt; + die <<"" if $fmt ne $ofmt; --$ofmt_key=$fmt and --output=$ofmt conflict } - my $devfd = $lei->path_to_fd($dst) // return; - $fmt //= $devfd >= 0 ? 'json' : (detect_fmt($lei, $dst) or return); + $fmt //= $devfd >= 0 ? 'json' : detect_fmt($dst); if (index($dst, '://') < 0) { # not a URL, so assume path $dst = $lei->canonpath_harder($dst); @@ -90,7 +89,7 @@ sub new { $opt->{pretty} //= $isatty; if (!$isatty && -f _) { my $fl = fcntl($lei->{$devfd}, F_GETFL, 0) // - return $lei->fail("fcntl(stdout): $!"); + die("fcntl(/dev/fd/$devfd): $!\n"); ovv_out_lk_init($self) unless ($fl & O_APPEND); } else { ovv_out_lk_init($self); @@ -101,14 +100,13 @@ sub new { if ($json) { $lei->{dedupe} //= PublicInbox::LeiDedupe->new($lei); } else { - $lei->{l2m} = eval { PublicInbox::LeiToMail->new($lei) }; - return $lei->fail($@) if $@; + $lei->{l2m} = PublicInbox::LeiToMail->new($lei); if ($opt->{mua} && $lei->{l2m}->lock_free) { $lei->{early_mua} = 1; $opt->{alert} //= [ ':WINCH,:bell' ] if -t $lei->{1}; } } - return $lei->fail('--shared is only for v2 inbox output') if + die("--shared is only for v2 inbox output\n") if $self->{fmt} ne 'v2' && $lei->{opt}->{shared}; $self; }