about summary refs log tree commit
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-02-04 04:44:22 +0000
committerEric Wong <e@yhbt.net>2020-02-04 21:39:51 +0000
commitbf4d35dd2f6389e9aa4dc87fdfaef801fa5b9108 (patch)
tree40fda80faa4da33b72120fe2427f5e9bf3208832
parentc5ce0f75020db9b3fa7dae9958bedcdb08452e04 (diff)
downloadpublic-inbox-bf4d35dd2f6389e9aa4dc87fdfaef801fa5b9108.tar.gz
Instead of serving $INBOX_DIR/all.git/description, since
$INBOX_DIR/all.git/description is not described in the
default message when it's missing.
-rw-r--r--lib/PublicInbox/WWW.pm11
-rw-r--r--t/plack.t2
-rw-r--r--t/psgi_v2.t3
3 files changed, 16 insertions, 0 deletions
diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm
index 3ce7cc2a..02b5ded3 100644
--- a/lib/PublicInbox/WWW.pm
+++ b/lib/PublicInbox/WWW.pm
@@ -85,6 +85,8 @@ sub call {
                 invalid_inbox($ctx, $1) || get_atom($ctx);
         } elsif ($path_info =~ m!$INBOX_RE/new\.html\z!o) {
                 invalid_inbox($ctx, $1) || get_new($ctx);
+        } elsif ($path_info =~ m!$INBOX_RE/description\z!o) {
+                get_description($ctx, $1);
         } elsif ($path_info =~ m!$INBOX_RE/(?:(?:git/)?([0-9]+)(?:\.git)?/)?
                                 ($PublicInbox::GitHTTPBackend::ANY)\z!ox) {
                 my ($epoch, $path) = ($2, $3);
@@ -621,4 +623,13 @@ sub get_css ($$$) {
         [ 200, $h, [ $css ] ];
 }
 
+sub get_description {
+        my ($ctx, $inbox) = @_;
+        invalid_inbox($ctx, $inbox) || do {
+                my $d = $ctx->{-inbox}->description . "\n";
+                [ 200, [ 'Content-Length', bytes::length($d),
+                        'Content-Type', 'text/plain' ], [ $d ] ];
+        };
+}
+
 1;
diff --git a/t/plack.t b/t/plack.t
index a9a053ed..e23658fd 100644
--- a/t/plack.t
+++ b/t/plack.t
@@ -189,6 +189,8 @@ test_psgi($app, sub {
         like($body, qr/<title>test for public-inbox/,
                 "set title in XML feed");
         like($body, qr/zzzzzz/, 'body included');
+        $res = $cb->(GET($pfx . '/description'));
+        like($res->content, qr/test for public-inbox/, 'got description');
 });
 
 test_psgi($app, sub {
diff --git a/t/psgi_v2.t b/t/psgi_v2.t
index 2ecd7458..fdd6969f 100644
--- a/t/psgi_v2.t
+++ b/t/psgi_v2.t
@@ -58,6 +58,9 @@ my $www = PublicInbox::WWW->new($config);
 my ($res, $raw, @from_);
 test_psgi(sub { $www->call(@_) }, sub {
         my ($cb) = @_;
+        $res = $cb->(GET('/v2test/description'));
+        like($res->content, qr!\$INBOX_DIR/description missing!,
+                'got v2 description missing message');
         $res = $cb->(GET('/v2test/a-mid@b/raw'));
         $raw = $res->content;
         like($raw, qr/^hello world$/m, 'got first message');