about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/RepoList.pm4
-rw-r--r--lib/PublicInbox/WwwCoderepo.pm6
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/PublicInbox/RepoList.pm b/lib/PublicInbox/RepoList.pm
index 4b313ed6..39dc9c0b 100644
--- a/lib/PublicInbox/RepoList.pm
+++ b/lib/PublicInbox/RepoList.pm
@@ -16,9 +16,9 @@ sub html_top_fallback { # WwwStream->html_repo_top
 }
 
 sub html ($$$) {
-        my ($wcr, $ctx, $pfx) = @_;
+        my ($wcr, $ctx, $re) = @_;
         my $cr = $wcr->{pi_cfg}->{-coderepos};
-        my @nicks = grep(m!\A\Q$pfx\E/!, keys %$cr) or return; # 404
+        my @nicks = grep(m!$re!, keys %$cr) or return; # 404
         __PACKAGE__->html_init($ctx);
         my $zfh = $ctx->zfh;
         print $zfh "<pre>matching coderepos\n";
diff --git a/lib/PublicInbox/WwwCoderepo.pm b/lib/PublicInbox/WwwCoderepo.pm
index 4ab9a77c..61aa7862 100644
--- a/lib/PublicInbox/WwwCoderepo.pm
+++ b/lib/PublicInbox/WwwCoderepo.pm
@@ -356,8 +356,12 @@ sub srv { # endpoint called by PublicInbox::WWW
         } elsif ($path_info =~ m!\A/(.+?)/(refs/(?:heads|tags))/\z! and
                         ($ctx->{git} = $pi_cfg->get_coderepo($1))) {
                 refs_foo($self, $ctx, $2);
+        } elsif ($path_info =~ m!\A/(.*?\*.*?)/*\z!) {
+                my $re = PublicInbox::Config::glob2re($1);
+                PublicInbox::RepoList::html($self, $ctx, qr!$re\z!) // r(404);
         } elsif ($path_info =~ m!\A/(.+?)/\z!) {
-                PublicInbox::RepoList::html($self, $ctx, $1) // r(404);
+                my $re = qr!\A\Q$1\E/!;
+                PublicInbox::RepoList::html($self, $ctx, $re) // r(404);
         } elsif ($path_info =~ m!\A/(.+?)\z! and
                         ($git = $pi_cfg->get_coderepo($1))) {
                 my $qs = $ctx->{env}->{QUERY_STRING};