diff options
-rw-r--r-- | lib/PublicInbox/RepoList.pm | 4 | ||||
-rw-r--r-- | lib/PublicInbox/WwwCoderepo.pm | 6 |
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}; |