]> git.xolatile.top Git - gorillanest.git/commitdiff
optimize
authoranon <anon@anon.anon>
Wed, 20 Aug 2025 22:18:45 +0000 (00:18 +0200)
committeranon <anon@anon.anon>
Wed, 20 Aug 2025 22:18:45 +0000 (00:18 +0200)
gorillanest.pl.cgi
gorillanest.pl.fcgi

index 4447e173d8d26cfc52ab078126338176aa29df85..f71f6e1f4b70dcc9ff59dc728f618eae59235215 100755 (executable)
@@ -70,12 +70,13 @@ sub serve_template {
 }
 
 my %routes = (
-    '/'                                   => sub { serve_template("index.tt", @_) },
-    '/~([a-zA-Z0-9_.]+)'                  => sub { serve_template("index_user.tt", @_) },
-    '/~([a-zA-Z0-9_.]+)/([a-zA-Z0-9_.]+)' => sub { serve_template("repository.tt", @_) },
+    '/'                    => sub { serve_template("index.tt", @_) },
+    '/~([\w+.])'           => sub { serve_template("index_user.tt", @_) },
+    '/~([\w+.])/([\w+.]+)' => sub { serve_template("repository.tt", @_) },
 );
+my %route_regex_cache = map { $_ => qr{^$_$} } keys %routes;
 
-my $public = 'git/public';
+my $public = 'repos/';
 my $dbfile = 'gorillanest.sqlite3';
 my %data = (
     found => 0,
@@ -91,9 +92,10 @@ sub master {
        my $uri = $ENV{'REQUEST_URI'} || '/';
 
        for my $pattern (keys %routes) {
-               if ($uri =~ m{^$pattern$}) {
+               if ($uri =~ $route_regex_cache{$pattern}) {
                        my $handler = $routes{$pattern};
                        $handler->($uri, $1, $2, $3);
+            return;
                }
        }
 
index f4c068706640b7e16157bce2fbd0680473275f93..d44df66d779b3204f5e2a8da568d8715bf530d79 100755 (executable)
@@ -6,7 +6,7 @@ use warnings;
 use Syntax::Keyword::Try;
 use FCGI;
 
-require "gorillanest.pl.cgi";
+BEGIN { require 'gorillanest.pl.cgi'; }
 
 our $request = FCGI::Request();