]> iEval git - gruntmaster-page.git/blobdiff - lib/Gruntmaster/Page.pm
Add user list and user pages
[gruntmaster-page.git] / lib / Gruntmaster / Page.pm
index 6ca62ddd5ce18cef705e2173e3b93bbf35a2cb9d..d90d57c71a2aa3b5fd9603f4ce19f9d15063afdd 100644 (file)
@@ -4,13 +4,15 @@ use 5.014000;
 use strict;
 use warnings;
 use parent qw/Exporter/;
-our @EXPORT_OK = qw/generate/;
+our @EXPORT_OK = qw/generate _generate/;
 
 use Fcntl qw/:flock/;
 use File::Basename qw/fileparse/;
+use File::Path qw/make_path/;
 use File::Slurp qw/write_file/;
 use IO::Compress::Gzip qw/gzip/;
 use IO::File;
+use Gruntmaster::Data qw/PUBLISH/;
 
 our $VERSION = '0.001';
 our @generators;
@@ -34,20 +36,24 @@ sub declaregen{
        my $contest = qr,(?:ct/$component/)?,;
        declaregen Index                        => qr,^index$,;
        declaregen Learn                        => qr,^learn$,;
+       declaregen Account                      => qr,^account$,;
+       declaregen Us                           => qr,^us/index$,;
+       declaregen 'Us::Entry'          => qr,^us/$component$,;
        declaregen Ct                           => qr,^ct/index$,;
        declaregen 'Ct::Entry'          => qr,^ct/$component/index$,;
        declaregen St                           => qr,^ct/$component/log/st$,;
        declaregen Log                          => qr,^${contest}log/(?:\d+|index)$,;
-       declaregen 'Log::Entry' => qr,^${contest}log/$component/index$,;
+       declaregen 'Log::Entry' => qr,^${contest}log/job/$component$,;
        declaregen Submit                       => qr,^${contest}submit$,;
        declaregen Pb                           => qr,^${contest}pb/index$,;
-       declaregen 'Pb::Entry'          => qr,^${contest}pb/$component/index$,;
+       declaregen 'Pb::Entry'          => qr,^${contest}pb/$component$,;
 }
 
-sub generate{
+sub _generate{
        my ($path) = @_;
        my ($path_noext, $ext) = $path =~ m/^(.*)\.(.*)$/;
-       my $basename = fileparse $path_noext;
+       my ($basename, $directories) = fileparse $path_noext;
+       make_path $directories;
 
        IO::File->new(">$path_noext.var")->close unless -f "$path_noext.var";
        flock my $lockfh = IO::File->new("<$path_noext.var"), LOCK_EX;
@@ -63,6 +69,7 @@ sub generate{
                        gzip \$page => "$path_noext.$lang.gz.$ext.new", Minimal => 1;
                        say $typemap "URI: $basename.$lang.gz.$ext\nContent-Language: $lang\nContent-Encoding: gzip\nContent-Type: " . CONTENT_TYPES->{$ext} . "\n";
                }
+               last
        }
 
        for my $lang (@{LANGUAGES()}) {
@@ -73,6 +80,10 @@ sub generate{
        close $typemap;
 }
 
+sub generate{
+       PUBLISH 'genpage', shift;
+}
+
 1;
 __END__
 # Below is stub documentation for your module. You'd better edit it!
This page took 0.024806 seconds and 4 git commands to generate.