about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-01-24 09:49:39 +0000
committerEric Wong <e@80x24.org>2023-01-24 10:07:56 +0000
commitc89ee98efc39c94aed0f38aa3c334c571d1a7073 (patch)
tree34c8d3de9eca677a71e136e2e1ecdd42a897d899
parent3c997cf32dea4a19d1c16e4c17ef974a3a647576 (diff)
downloadpublic-inbox-c89ee98efc39c94aed0f38aa3c334c571d1a7073.tar.gz
Maybe it makes control flow a little easier to rely on
implicit return (IIRC, it's slightly faster, too).
-rw-r--r--lib/PublicInbox/WwwCoderepo.pm37
1 files changed, 13 insertions, 24 deletions
diff --git a/lib/PublicInbox/WwwCoderepo.pm b/lib/PublicInbox/WwwCoderepo.pm
index 024a9d8f..8dcd9772 100644
--- a/lib/PublicInbox/WwwCoderepo.pm
+++ b/lib/PublicInbox/WwwCoderepo.pm
@@ -220,38 +220,27 @@ sub srv { # endpoint called by PublicInbox::WWW
         my $git;
         # handle clone requests
         my $cr = $self->{pi_cfg}->{-code_repos};
-        if ($path_info =~ m!\A/(.+?)/($PublicInbox::GitHTTPBackend::ANY)\z!x) {
-                $git = $cr->{$1} and return
+        if ($path_info =~ m!\A/(.+?)/($PublicInbox::GitHTTPBackend::ANY)\z!x and
+                ($git = $cr->{$1})) {
                         PublicInbox::GitHTTPBackend::serve($ctx->{env},$git,$2);
-        }
-        $path_info =~ m!\A/(.+?)/\z! and
-                ($ctx->{git} = $cr->{$1}) and return summary($self, $ctx);
-        if ($path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/([^/]+)?\z! and
+        } elsif ($path_info =~ m!\A/(.+?)/\z! and ($ctx->{git} = $cr->{$1})) {
+                summary($self, $ctx)
+        } elsif ($path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/([^/]+)?\z! and
                         ($ctx->{git} = $cr->{$1})) {
                 $ctx->{lh} = $self->{log_fh};
-                return PublicInbox::ViewVCS::show($ctx, $2, $3);
-        }
-
-        if ($path_info =~ m!\A/(.+?)/tree/(.*)\z! and
+                PublicInbox::ViewVCS::show($ctx, $2, $3);
+        } elsif ($path_info =~ m!\A/(.+?)/tree/(.*)\z! and
                         ($ctx->{git} = $cr->{$1})) {
                 $ctx->{lh} = $self->{log_fh};
-                return PublicInbox::RepoTree::srv_tree($ctx, $2) // r(404);
-        }
-
-        # snapshots:
-        if ($path_info =~ m!\A/(.+?)/snapshot/([^/]+)\z! and
+                PublicInbox::RepoTree::srv_tree($ctx, $2) // r(404);
+        } elsif ($path_info =~ m!\A/(.+?)/snapshot/([^/]+)\z! and
                         ($ctx->{git} = $cr->{$1})) {
                 $ctx->{wcr} = $self;
-                return PublicInbox::RepoSnapshot::srv($ctx, $2) // r(404);
-        }
-
-        if ($path_info =~ m!\A/(.+?)/atom/(.*)\z! and
+                PublicInbox::RepoSnapshot::srv($ctx, $2) // r(404);
+        } elsif ($path_info =~ m!\A/(.+?)/atom/(.*)\z! and
                         ($ctx->{git} = $cr->{$1})) {
-                return PublicInbox::RepoAtom::srv_atom($ctx, $2) // r(404);
-        }
-
-        # enforce trailing slash:
-        if ($path_info =~ m!\A/(.+?)\z! and ($git = $cr->{$1})) {
+                PublicInbox::RepoAtom::srv_atom($ctx, $2) // r(404);
+        } elsif ($path_info =~ m!\A/(.+?)\z! and ($git = $cr->{$1})) {
                 my $qs = $ctx->{env}->{QUERY_STRING};
                 my $url = $git->base_url($ctx->{env});
                 $url .= "?$qs" if $qs ne '';