From: Emil Williams Date: Sun, 17 Aug 2025 13:11:57 +0000 (+0000) Subject: 2 Wizards In Detroit Getting McDonalds, Difficulty: Impossible X-Git-Url: https://git.xolatile.top/?a=commitdiff_plain;h=52a844c398c752a811ec300846342fa5f02e583d;p=gorillanest.git 2 Wizards In Detroit Getting McDonalds, Difficulty: Impossible --- diff --git a/gorillanest b/gorillanest index baa196e..6a917c1 100755 --- a/gorillanest +++ b/gorillanest @@ -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); diff --git a/template/404.tt b/template/404.tt new file mode 100644 index 0000000..9d93d48 --- /dev/null +++ b/template/404.tt @@ -0,0 +1,7 @@ + +[% INCLUDE head.tt %] + +

404

+ +[% INCLUDE foot.tt %] + diff --git a/template/foot.tt b/template/foot.tt new file mode 100644 index 0000000..e69de29 diff --git a/template/head.tt b/template/head.tt new file mode 100644 index 0000000..1a9d3d9 --- /dev/null +++ b/template/head.tt @@ -0,0 +1,2 @@ + + diff --git a/template/index.tt b/template/index.tt new file mode 100644 index 0000000..bf0c501 --- /dev/null +++ b/template/index.tt @@ -0,0 +1,10 @@ + +[% INCLUDE head.tt %] + +

index

+[% FOR i IN directories %] +[% i %] +[% END %] + +[% INCLUDE foot.tt %] + diff --git a/template/index_user.tt b/template/index_user.tt new file mode 100644 index 0000000..2cbfbed --- /dev/null +++ b/template/index_user.tt @@ -0,0 +1,7 @@ + +[% INCLUDE head.tt %] + +

index_user

+ +[% INCLUDE foot.tt %] + diff --git a/template/repository.tt b/template/repository.tt new file mode 100644 index 0000000..004413d --- /dev/null +++ b/template/repository.tt @@ -0,0 +1,7 @@ + +[% INCLUDE head.tt %] + +

repository

+ +[% INCLUDE foot.tt %] +