Skip to content

Commit 50f7f56

Browse files
committed
and autogenerate the Images too
1 parent 4ec03ed commit 50f7f56

File tree

6 files changed

+106
-52
lines changed

6 files changed

+106
-52
lines changed

CHANGES

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Revision history for Perl module CPAN::Mini::Webserver:
22

33
0.44
4-
- autogenerate the CSS template file
4+
- autogenerate the CSS and Images template files
55

66
0.43 Thu Sep 18 17:14:50 BST 2008
77
- add an abstract to the Makefile.PL

MANIFEST

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ lib/CPAN/Mini/Webserver.pm
44
lib/CPAN/Mini/Webserver/Index.pm
55
lib/CPAN/Mini/Webserver/Templates.pm
66
lib/CPAN/Mini/Webserver/Templates/CSS.pm
7+
lib/CPAN/Mini/Webserver/Templates/Images.pm
78
Makefile.PL
89
MANIFEST This list of files
910
README

build_images.pl

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!perl
2+
use strict;
3+
use warnings;
4+
use File::Slurp;
5+
use MIME::Base64;
6+
use Perl::Tidy;
7+
use Template;
8+
9+
my $template = q{package CPAN::Mini::Webserver::Templates::Images;
10+
use strict;
11+
use warnings;
12+
use MIME::Base64;
13+
use Template::Declare::Tags;
14+
use base 'Template::Declare';
15+
16+
[% FOREACH file IN files %]
17+
[% name = file.0 %]
18+
[% encoded = file.1 %]
19+
template 'images_[% name %]' => sub {
20+
my $self = shift;
21+
my $encoded = <<'END';
22+
[% encoded %]
23+
END
24+
outs_raw decode_base64($encoded);
25+
};
26+
[% END %]
27+
28+
1;
29+
};
30+
31+
my $tt = Template->new;
32+
$tt->process(
33+
\$template,
34+
{ files => [
35+
[ 'logo' => encode_base64( read_file('images/logo.png') ) ],
36+
[ 'favicon' => encode_base64( read_file('images/favicon.png') ) ],
37+
],
38+
},
39+
\my $perl,
40+
) || die $template->error();
41+
Perl::Tidy::perltidy( source => \$perl, destination => \my $tidied );
42+
write_file( 'lib/CPAN/Mini/Webserver/Templates/Images.pm', $tidied );

lib/CPAN/Mini/Webserver.pm

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use CPAN::Mini::App;
55
use CPAN::Mini::Webserver::Index;
66
use CPAN::Mini::Webserver::Templates;
77
use CPAN::Mini::Webserver::Templates::CSS;
8+
use CPAN::Mini::Webserver::Templates::Images;
89
use File::Spec::Functions qw(canonpath);
910
use File::Type;
1011
use List::MoreUtils qw(uniq);
@@ -24,6 +25,7 @@ Template::Declare->init(
2425
roots => [
2526
'CPAN::Mini::Webserver::Templates',
2627
'CPAN::Mini::Webserver::Templates::CSS',
28+
'CPAN::Mini::Webserver::Templates::Images',
2729
]
2830
);
2931

lib/CPAN/Mini/Webserver/Templates.pm

-51
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package CPAN::Mini::Webserver::Templates;
22
use strict;
33
use warnings;
4-
use MIME::Base64;
54
use Template::Declare::Tags;
65
use base 'Template::Declare';
76

@@ -759,56 +758,6 @@ template 'opensearch' => sub {
759758
|;
760759
};
761760

762-
template 'images_logo' => sub {
763-
my $self = shift;
764-
my $encoded
765-
= q|iVBORw0KGgoAAAANSUhEUgAAAFIAAAAYCAMAAABeMVqjAAAAAXNSR0IArs4c6QAAApFQTFRFAgIC
766-
AwMDBAQEBQUFBgYGBwcHCAgICQkJCgoKCwsLDAwMDQ0NDg4ODw8PEBAQEREREhISExMTFBQUFRUV
767-
FhYWFxcXGBgYGRkZGhoaGxsbHh4eHx8fICAgISEhIiIiIyMjJCQkJSUlJiYmJycnKCgoKSkpKioq
768-
KysrLCwsLS0tLi4uLy8vMDAwMTExMjIyMzMzNTU1NjY2Nzc3ODg4OTk5Ojo6Ozs7PDw8PT09Pj4+
769-
Pz8/QEBAQUFBQkJCQ0NDRERERUVFSEhISUlJSkpKTU1NT09PUFBQUVFRUlJSU1NTVFRUVVVVV1dX
770-
WFhYWVlZW1tbXV1dXl5eX19fY2NjZGRkZmZmaGhoaWlpa2trbW1tbm5ub29vcHBwcXFxcnJydHR0
771-
dXV1dnZ2enp6e3t7fHx8fX19fn5+f39/gICAgYGBgoKCg4ODhYWFhoaGiIiIiYmJjIyMjY2Njo6O
772-
kJCQkZGRkpKSk5OTlJSUlpaWl5eXmJiYmZmZmpqam5ubnJycnZ2dnp6en5+foKCgoaGhoqKio6Oj
773-
pKSkpaWlpqamp6enqKioqampqqqqq6urrKysra2trq6ur6+vsLCwsbGxsrKys7OztLS0tbW1tra2
774-
t7e3uLi4ubm5urq6u7u7vLy8vb29vr6+wMDAwcHBwsLCw8PDxMTExsbGx8fHyMjIycnJysrKy8vL
775-
zMzMzc3Nzs7Oz8/P0NDQ09PT1NTU1dXV1tbW19fX2NjY2dnZ2tra3Nzc3d3d3t7e39/f4ODg4eHh
776-
4uLi4+Pj5OTk5eXl5ubm6Ojo6urq6+vr7Ozs7e3t7u7u7+/v8PDw8fHx8vLy8/Pz9PT09fX19vb2
777-
9/f3+Pj4+fn5+vr6+/v7/Pz8/f39/v7+////4IAsjwAAA9hJREFUOMtjuEUauOq7iJASBtJMvN6h
778-
UnuTqkZe36Rmw7+m+yr1jLyxO1xPwrjN8CJRRl6cnxXi5RWa3r72JIh7qqaxq72qsm/TdWQTt3eJ
779-
2nK3WzcgG7BmBpy5saG1q3YL1MhrLbre9YvXLW8NFWVPBwncPBfG7DCx2YfXeiNcx809Kyzs+Z1a
780-
RY4iG9krshhu5XEnvhU3IEZeidZcAgn0mzuNi6BKmROAihp4NI7BTNy/KlfGSKDHQt7/NJKRfSyy
781-
W+CcfIUrEI/fTBNfDxedWQWhJzMlgiz2Ym6Hmnhw1XRFNw6vVk4hQ7+zCCO7uNlVdsE4ZbJQIzfy
782-
pCISxoEuqJEMCSCqhzEdwt+/apamjaLIRDtzVTHDmBsIV9oGsxofhnKq5a5CjAzl3ImUTi6gGLmC
783-
sQLMPbVquoqFEEtwu5x6hLigTCVcfb/9eSdWa2hQNECNPC8rcwMzKUxkjAdRUzjXguNv3RRZc34W
784-
Vlf9vDUqFqwCUjNh6nosb500ZXc/D+a0QY3cxmFwC5eRV7yDQNbd3DVB0YKPjc1ANfH8rYkqoiwi
785-
KhtgMW5y49Y+DbagS+CAlbsGNnINizkOI28eS/I9AeIc71Mx4WNmN1MqBWq5WacqyCJucghqpB5Q
786-
aKMCWzTI6n55iCvXMqtjN3JJVsqsK2Bv9ymb8LDy2ChPAEfjjTJFHhYJF4hfezUuA8nVEmyZQLm5
787-
ihAjD/DzHcdq5E1YOpitaMTJxG2uvgKWRDOV2FnEw8Ex0KsIjs+ZfNzFN28t1IZkyCvaLC2YRkJj
788-
HAQWyBmwMglZWO+GS16LU2ZnEcgHWdkrcw6SmPi5224u0oLm8Sxm0/N4jNwhpc7MJGngfQxJ9kqw
789-
PBsb52RQjEuegQg1cwlNWakDNfKgAns2oniYCqEmMSRCBbYJszDJ6kad2z+zvLi0vLahubN74rRp
790-
+rJsrCkgV0pC0+TNKi7Reg1YSTSbh7cYZub2AgjdzRgLC7npItLquiGmCnLyyqrKahqaWpo6urJy
791-
JsKOoNTQKwpz/Y0yDkFNeOE2W4rddyvY0KPuk6F5iykY7vBtaZqcnJxcHEDAzsrGxsbCwq5QfWIO
792-
uNis4t0DL4kKWbUQ5eW+WGkeq6iM1AApqb1ggV1u7GpLj8ANdWFiYGQAAkZmZhYWFjZOVVEzcETf
793-
2OzBkbYZ5sOb+QbIpfrJ+VXJ8QnFvQcgOX3FilUrFm6DG+nJxMTECARQg1nYeBTABenlhcvXLl10
794-
De7OZcRXFE3c7Jw8vLw83NxgglNEse4GhXXPzV1r5k1uLMlJigx0ttCRExXoxF1PAgA2yRjCqrg9
795-
2wAAAABJRU5ErkJggg==
796-
|;
797-
outs_raw decode_base64($encoded);
798-
};
799-
800-
template 'images_favicon' => sub {
801-
my $self = shift;
802-
my $encoded
803-
= q|iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAADNQTFRFOAAA
804-
BQgEFhgVHh8dISIgJigmLC0rMTMwOz06RkhFTE1LWFpXZWdkeHl3hIaDnqCdzM7LanH2cgAAAAF0
805-
Uk5TAEDm2GYAAABsSURBVBjTdY9ZDsIwDAW9rynt/U8LhRAVBO/HGnss2QB/csRXo3XrK+9u43NB
806-
bnIxjuEx1HJxG26ezIsVxQEUdbKgPm1BOUsxWr1cxocYtBiKMKBRK8PMIzKdzhnhOzzm5sq8xKW7
807-
woT819t3e1MC40tpI0cAAAAASUVORK5CYII=
808-
|;
809-
outs_raw decode_base64($encoded);
810-
};
811-
812761
__END__
813762
814763
=head1 NAME
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package CPAN::Mini::Webserver::Templates::Images;
2+
use strict;
3+
use warnings;
4+
use MIME::Base64;
5+
use Template::Declare::Tags;
6+
use base 'Template::Declare';
7+
8+
template 'images_logo' => sub {
9+
my $self = shift;
10+
my $encoded = <<'END';
11+
iVBORw0KGgoAAAANSUhEUgAAAFIAAAAYCAMAAABeMVqjAAAAAXNSR0IArs4c6QAAApFQTFRFAgIC
12+
AwMDBAQEBQUFBgYGBwcHCAgICQkJCgoKCwsLDAwMDQ0NDg4ODw8PEBAQEREREhISExMTFBQUFRUV
13+
FhYWFxcXGBgYGRkZGhoaGxsbHh4eHx8fICAgISEhIiIiIyMjJCQkJSUlJiYmJycnKCgoKSkpKioq
14+
KysrLCwsLS0tLi4uLy8vMDAwMTExMjIyMzMzNTU1NjY2Nzc3ODg4OTk5Ojo6Ozs7PDw8PT09Pj4+
15+
Pz8/QEBAQUFBQkJCQ0NDRERERUVFSEhISUlJSkpKTU1NT09PUFBQUVFRUlJSU1NTVFRUVVVVV1dX
16+
WFhYWVlZW1tbXV1dXl5eX19fY2NjZGRkZmZmaGhoaWlpa2trbW1tbm5ub29vcHBwcXFxcnJydHR0
17+
dXV1dnZ2enp6e3t7fHx8fX19fn5+f39/gICAgYGBgoKCg4ODhYWFhoaGiIiIiYmJjIyMjY2Njo6O
18+
kJCQkZGRkpKSk5OTlJSUlpaWl5eXmJiYmZmZmpqam5ubnJycnZ2dnp6en5+foKCgoaGhoqKio6Oj
19+
pKSkpaWlpqamp6enqKioqampqqqqq6urrKysra2trq6ur6+vsLCwsbGxsrKys7OztLS0tbW1tra2
20+
t7e3uLi4ubm5urq6u7u7vLy8vb29vr6+wMDAwcHBwsLCw8PDxMTExsbGx8fHyMjIycnJysrKy8vL
21+
zMzMzc3Nzs7Oz8/P0NDQ09PT1NTU1dXV1tbW19fX2NjY2dnZ2tra3Nzc3d3d3t7e39/f4ODg4eHh
22+
4uLi4+Pj5OTk5eXl5ubm6Ojo6urq6+vr7Ozs7e3t7u7u7+/v8PDw8fHx8vLy8/Pz9PT09fX19vb2
23+
9/f3+Pj4+fn5+vr6+/v7/Pz8/f39/v7+////4IAsjwAAA9hJREFUOMtjuEUauOq7iJASBtJMvN6h
24+
UnuTqkZe36Rmw7+m+yr1jLyxO1xPwrjN8CJRRl6cnxXi5RWa3r72JIh7qqaxq72qsm/TdWQTt3eJ
25+
2nK3WzcgG7BmBpy5saG1q3YL1MhrLbre9YvXLW8NFWVPBwncPBfG7DCx2YfXeiNcx809Kyzs+Z1a
26+
RY4iG9krshhu5XEnvhU3IEZeidZcAgn0mzuNi6BKmROAihp4NI7BTNy/KlfGSKDHQt7/NJKRfSyy
27+
W+CcfIUrEI/fTBNfDxedWQWhJzMlgiz2Ym6Hmnhw1XRFNw6vVk4hQ7+zCCO7uNlVdsE4ZbJQIzfy
28+
pCISxoEuqJEMCSCqhzEdwt+/apamjaLIRDtzVTHDmBsIV9oGsxofhnKq5a5CjAzl3ImUTi6gGLmC
29+
sQLMPbVquoqFEEtwu5x6hLigTCVcfb/9eSdWa2hQNECNPC8rcwMzKUxkjAdRUzjXguNv3RRZc34W
30+
Vlf9vDUqFqwCUjNh6nosb500ZXc/D+a0QY3cxmFwC5eRV7yDQNbd3DVB0YKPjc1ANfH8rYkqoiwi
31+
KhtgMW5y49Y+DbagS+CAlbsGNnINizkOI28eS/I9AeIc71Mx4WNmN1MqBWq5WacqyCJucghqpB5Q
32+
aKMCWzTI6n55iCvXMqtjN3JJVsqsK2Bv9ymb8LDy2ChPAEfjjTJFHhYJF4hfezUuA8nVEmyZQLm5
33+
ihAjD/DzHcdq5E1YOpitaMTJxG2uvgKWRDOV2FnEw8Ex0KsIjs+ZfNzFN28t1IZkyCvaLC2YRkJj
34+
HAQWyBmwMglZWO+GS16LU2ZnEcgHWdkrcw6SmPi5224u0oLm8Sxm0/N4jNwhpc7MJGngfQxJ9kqw
35+
PBsb52RQjEuegQg1cwlNWakDNfKgAns2oniYCqEmMSRCBbYJszDJ6kad2z+zvLi0vLahubN74rRp
36+
+rJsrCkgV0pC0+TNKi7Reg1YSTSbh7cYZub2AgjdzRgLC7npItLquiGmCnLyyqrKahqaWpo6urJy
37+
JsKOoNTQKwpz/Y0yDkFNeOE2W4rddyvY0KPuk6F5iykY7vBtaZqcnJxcHEDAzsrGxsbCwq5QfWIO
38+
uNis4t0DL4kKWbUQ5eW+WGkeq6iM1AApqb1ggV1u7GpLj8ANdWFiYGQAAkZmZhYWFjZOVVEzcETf
39+
2OzBkbYZ5sOb+QbIpfrJ+VXJ8QnFvQcgOX3FilUrFm6DG+nJxMTECARQg1nYeBTABenlhcvXLl10
40+
De7OZcRXFE3c7Jw8vLw83NxgglNEse4GhXXPzV1r5k1uLMlJigx0ttCRExXoxF1PAgA2yRjCqrg9
41+
2wAAAABJRU5ErkJggg==
42+
43+
END
44+
outs_raw decode_base64($encoded);
45+
};
46+
47+
template 'images_favicon' => sub {
48+
my $self = shift;
49+
my $encoded = <<'END';
50+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAADNQTFRFOAAA
51+
BQgEFhgVHh8dISIgJigmLC0rMTMwOz06RkhFTE1LWFpXZWdkeHl3hIaDnqCdzM7LanH2cgAAAAF0
52+
Uk5TAEDm2GYAAABsSURBVBjTdY9ZDsIwDAW9rynt/U8LhRAVBO/HGnss2QB/csRXo3XrK+9u43NB
53+
bnIxjuEx1HJxG26ezIsVxQEUdbKgPm1BOUsxWr1cxocYtBiKMKBRK8PMIzKdzhnhOzzm5sq8xKW7
54+
woT819t3e1MC40tpI0cAAAAASUVORK5CYII=
55+
56+
END
57+
outs_raw decode_base64($encoded);
58+
};
59+
60+
1;

0 commit comments

Comments
 (0)