aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgorillanest37
-rw-r--r--template/404.tt7
-rw-r--r--template/foot.tt0
-rw-r--r--template/head.tt2
-rw-r--r--template/index.tt10
-rw-r--r--template/index_user.tt7
-rw-r--r--template/repository.tt7
7 files changed, 50 insertions, 20 deletions
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 @@
+<html>
+[% INCLUDE head.tt %]
+<body>
+<h1>404</h1>
+</body>
+[% INCLUDE foot.tt %]
+</html>
diff --git a/template/foot.tt b/template/foot.tt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/template/foot.tt
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 @@
+<head>
+</head>
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 @@
+<html>
+[% INCLUDE head.tt %]
+<body>
+<h1>index</h1>
+[% FOR i IN directories %]
+[% i %]
+[% END %]
+</body>
+[% INCLUDE foot.tt %]
+</html>
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 @@
+<html>
+[% INCLUDE head.tt %]
+<body>
+<h1>index_user</h1>
+</body>
+[% INCLUDE foot.tt %]
+</html>
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 @@
+<html>
+[% INCLUDE head.tt %]
+<body>
+<h1>repository</h1>
+</body>
+[% INCLUDE foot.tt %]
+</html>