aboutsummaryrefslogtreecommitdiff
path: root/perl/cgi.pl
diff options
context:
space:
mode:
Diffstat (limited to 'perl/cgi.pl')
-rwxr-xr-xperl/cgi.pl12
1 files changed, 7 insertions, 5 deletions
diff --git a/perl/cgi.pl b/perl/cgi.pl
index c5cd950..fc8e466 100755
--- a/perl/cgi.pl
+++ b/perl/cgi.pl
@@ -112,21 +112,23 @@ sub GN::cgi {
serve_template("404.tt", {}); # XXX missing code
}
-sub GN::main() {
- my $root = GIT_ROOT;
+sub GN::init() {
my %data = (
found => 0,
);
-
my %routes = (
'/' => sub { GN::index($root); },
'/~([\w.]+)' => sub { GN::user($root, @_) },
'/~([\w.]+)/([\w.]+)' => sub { GN::repository($root, @_) },
);
-
my %routes_cache = map { $_ => qr{^$_$} } keys %routes;
+ return \%data, \%routes, \%routes_cache;
+}
- GN::cgi(\%data, \%routes, \%routes_cache);
+sub GN::main() {
+ my $root = GIT_ROOT;
+ my ($data, $routes, $routes_cache) = GN::init();
+ GN::cgi($data, $routes, $routes_cache);
}
GN::main() if !caller;