]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Inbox.pm
No ext_urls
[public-inbox.git] / lib / PublicInbox / Inbox.pm
index 8ac7eb302a0c6ed9ef7b9b97f53888bcc115d866..cb98d2ad5e29cbc017ddf65df293e9bbe1546d9f 100644 (file)
@@ -181,33 +181,18 @@ sub over {
        } // ($req ? croak("E: $@") : undef);
 }
 
-sub try_cat {
-       my ($path) = @_;
-       open(my $fh, '<', $path) or return '';
-       local $/;
-       <$fh> // '';
-}
-
-sub cat_desc ($) {
-       my $desc = try_cat($_[0]);
-       local $/ = "\n";
-       chomp $desc;
-       utf8::decode($desc);
-       $desc =~ s/\s+/ /smg;
-       $desc eq '' ? undef : $desc;
-}
-
 sub description {
        my ($self) = @_;
-       ($self->{description} //= cat_desc("$self->{inboxdir}/description")) //
+       ($self->{description} //=
+               PublicInbox::Git::cat_desc("$self->{inboxdir}/description")) //
                '($INBOX_DIR/description missing)';
 }
 
 sub cloneurl {
        my ($self) = @_;
        $self->{cloneurl} // do {
-               my $s = try_cat("$self->{inboxdir}/cloneurl");
-               my @urls = split(/\s+/s, $s);
+               my @urls = split(/\s+/s,
+                 PublicInbox::Git::try_cat("$self->{inboxdir}/cloneurl"));
                scalar(@urls) ? ($self->{cloneurl} = \@urls) : undef;
        } // [];
 }
@@ -220,7 +205,8 @@ sub base_url {
                $url .= '/' if $url !~ m!/\z!;
                return $url .= $self->{name} . '/';
        }
-       # called from a non-PSGI environment (e.g. NNTP/POP3):
+       # called from a non-PSGI environment or cross-inbox environment
+       # where multiple inboxes can have different domains
        my $url = $self->{url} // return undef;
        $url = $url->[0] // return undef;
        # expand protocol-relative URLs to HTTPS if we're