use constant SSOMA_URL => 'http://ssoma.public-inbox.org/';
use constant PI_URL => 'http://public-inbox.org/';
require PublicInbox::Git;
+use PublicInbox::GitHTTPDumb;
our $LISTNAME_RE = qr!\A/([\w\.\-]+)!;
our $MID_RE = qr!([^/]+)!;
our $END_RE = qr!(f/|T/|t/|t\.mbox(?:\.gz)?|t\.atom|raw|)!;
} elsif ($path_info =~ m!$LISTNAME_RE/(?:atom\.xml|new\.atom)\z!o) {
invalid_list($ctx, $1) || get_atom($ctx);
+ } elsif ($path_info =~ m!$LISTNAME_RE/
+ ($PublicInbox::GitHTTPDumb::ANY)\z!ox) {
+ my $path = $2;
+ invalid_list($ctx, $1) || serve_git($cgi, $ctx->{git}, $path);
} elsif ($path_info =~ m!$LISTNAME_RE/$MID_RE/$END_RE\z!o) {
msg_page($ctx, $1, $2, $3);
# in case people leave off the trailing slash:
} elsif ($path_info =~ m!$LISTNAME_RE/$MID_RE/(f|T|t)\z!o) {
- r301($ctx, $1, $2, $3 eq 't' ? 't/#u' : $3);
+ my ($listname, $mid, $suffix) = ($1, $2, $3);
+ $suffix .= $suffix =~ /\A[tT]\z/ ? '/#u' : '/';
+ r301($ctx, $listname, $mid, $suffix);
# convenience redirects order matters
} elsif ($path_info =~ m!$LISTNAME_RE/([^/]{2,})\z!o) {
r404($ctx);
}
+sub serve_git {
+ my ($cgi, $git, $path) = @_;
+ PublicInbox::GitHTTPDumb::serve($cgi, $git, $path);
+}
+
1;