This commit is contained in:
anon 2025-08-17 15:14:00 +02:00
commit ee28f25187
7 changed files with 50 additions and 20 deletions

View File

@ -47,12 +47,12 @@ sub GN::user { # /$username/
return \@directories;
}
sub GN::repository { # /$username/(.*?(\.git)?)
sub GN::repository { # /$username/$repository
my ($root, $dataref) = @_;
my %data = %$dataref;
print "* repository: $data{repository}\n";
my @directories = @{GN::directories(join('/', $root, $data{name}, $data{repository}))};
print "@directories\n";
return \@directories;
# obviously should be doing more
}
sub GN::cache { # cache{'/some/path'}
@ -84,6 +84,7 @@ try {
# $db->disconnect;
#
my $head = 0;
my $a_template;
while($request->Accept() >= 0) {
my $cgi = CGI->new;
my %header = (
@ -96,27 +97,23 @@ try {
$head = 1;
} elsif ($method eq 'GET') {
($data{name}, $data{repository}) = $uri =~ m{/(.*?)/(?:(.*))?};
info("name:", $data{name} || '', "repo:", $data{repository} || '');
if ($head) { $head = 0; continue; }
# info("name:", $data{name} || '', "repo:", $data{repository} || '');
if ($uri eq '/') {
print $cgi->header(%header);
print "* Index\n";
my @directories = @{GN::index($gitroot, \%data)};
print "@directories\n";
} elsif ($data{repository}) { # this will generally fail
print $cgi->header(%header);
print "* Repository\n";
my @directories = @{GN::repositories($gitroot, \%data)};
print "@directories\n";
} elsif ($data{name}) { # this acts like a default case
print $cgi->header(%header);
print "* User: $data{name}\n";
my @directories = @{GN::user($gitroot, \%data)};
print "@directories\n";
$data{directories} = GN::index($gitroot, \%data);
$a_template = "index.tt";
} elsif ($data{repository}) {
$data{directories} = GN::repositories($gitroot, \%data);
$a_template = "repository.tt";
} elsif ($data{name}) {
$data{directories} = GN::user($gitroot, \%data);
$a_template = "index_user.tt";
} else {
$header{-status} = '404 Not Found';
print $cgi->header(%header);
$a_template = "404.tt";
}
print $cgi->header(%header);
if ($head) { $head = 0; continue; }
$template->process($a_template, \%data) or info("Template: " . $template->error());
} else {
$header{-status} = '405 Method Not Allowed';
print $cgi->header(%header);

7
template/404.tt Normal file
View File

@ -0,0 +1,7 @@
<html>
[% INCLUDE head.tt %]
<body>
<h1>404</h1>
</body>
[% INCLUDE foot.tt %]
</html>

0
template/foot.tt Normal file
View File

2
template/head.tt Normal file
View File

@ -0,0 +1,2 @@
<head>
</head>

10
template/index.tt Normal file
View File

@ -0,0 +1,10 @@
<html>
[% INCLUDE head.tt %]
<body>
<h1>index</h1>
[% FOR i IN directories %]
[% i %]
[% END %]
</body>
[% INCLUDE foot.tt %]
</html>

7
template/index_user.tt Normal file
View File

@ -0,0 +1,7 @@
<html>
[% INCLUDE head.tt %]
<body>
<h1>index_user</h1>
</body>
[% INCLUDE foot.tt %]
</html>

7
template/repository.tt Normal file
View File

@ -0,0 +1,7 @@
<html>
[% INCLUDE head.tt %]
<body>
<h1>repository</h1>
</body>
[% INCLUDE foot.tt %]
</html>