Merge branch 'master' into newmc
authorMarius Gavrilescu <marius@ieval.ro>
Mon, 9 Mar 2015 15:12:41 +0000 (17:12 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Mon, 9 Mar 2015 15:12:41 +0000 (17:12 +0200)
Conflicts:
make_static.PL

1  2 
make_static.PL

diff --cc make_static.PL
index 100b6c2ca31c40f3c5fba2784859ac43c8f6e4a1,0a10891e04c3264a835fc4a5d1c9cb95475c1cdd..6ea5eb1478fe7dce4b2256a3cc2b3ccd9af2fe49
@@@ -11,64 -10,42 +11,94 @@@ use File::Slurp qw/read_file write_file
  mkdir 'static';
  mkdir 'static/css';
  
- my $maker = Local::CSS::SpriteMaker->new(
-       css_class_prefix => 'logo-',
-       rc_override_classname => sub {
-               my ($name) = @_;
-               $name =~ s/-light/.logo-light/r;
-       }
- );
++sub make_sprite {
++      my $maker = Local::CSS::SpriteMaker->new(
++              css_class_prefix => 'logo-',
++              rc_override_classname => sub {
++                      my ($name) = @_;
++                      $name =~ s/-light/.logo-light/r;
++              }
++      );
 +
- $maker->make_sprite(
-       source_images     => ['logos/'],
-       target_file       => 'static/logos.png',
-       add_extra_padding => 10,
- );
++      $maker->make_sprite(
++              source_images     => ['logos/'],
++              target_file       => 'static/logos.png',
++              add_extra_padding => 10,
++      );
 +
- $maker->print_css(
-       filename        => 'css/logos.css',
-       sprite_filename => 'https://static.mindcoding.ro/static/logos.png',
- );
++      $maker->print_css(
++              filename        => 'css/logos.css',
++              sprite_filename => 'https://static.mindcoding.ro/static/logos.png',
++      );
 +
- system 'optipng', '-o7', '-zm1-9', 'static/logos.png';
++      system 'optipng', '-o7', '-zm1-9', 'static/logos.png';
++}
 +
- my $common_css;
- $common_css .= read_file $_ for <css/*.css>;
- for (<css/themes/*>) {
-       my ($theme) = m,themes/(.*)\.css,;
-       my $css = read_file $_;
-       $css .= $common_css;
-       write_file "static/css/$theme.css", CSS::Minifier::XS::minify $css;
+ sub make_css {
+       my $common_css;
+       $common_css .= read_file $_ for <css/*.css>;
+       for (<css/themes/*>) {
+               my ($theme) = m,themes/(.*)\.css,;
+               my $css = read_file $_;
+               $css .= $common_css;
+               write_file "static/css/$theme.css", CSS::Minifier::XS::minify $css;
+       }
  }
  
- if (-f 'compiler.jar') {
-       system java => -jar => 'compiler.jar', qw,-O SIMPLE --create_source_map static/js.map --js_output_file static/js.js --language_in ECMASCRIPT5_STRICT --source_map_location_mapping js/|/static/js/,, <js/*>;
-       my $js = read_file 'static/js.js';
-       write_file 'static/js.js', '//# sourceMappingURL=/static/js.map', "\n", $js;
-       system 'cp', '-rp', 'js', 'static/';
- } else {
-       my $js;
-       $js .= read_file $_ for <js/*.js>;
-       write_file 'static/js.js', JavaScript::Minifier::XS::minify $js;
+ sub make_js {
+       if (-f 'compiler.jar') {
+               system java => -jar => 'compiler.jar', qw,-O SIMPLE --create_source_map static/js.map --js_output_file static/js.js --language_in ECMASCRIPT5_STRICT --source_map_location_mapping js/|/static/js/,, <js/*>;
+               my $js = read_file 'static/js.js';
+               write_file 'static/js.js', '//# sourceMappingURL=/static/js.map', "\n", $js;
+               system 'cp', '-rp', 'js', 'static/';
+       } else {
+               my $js;
+               $js .= read_file $_ for <js/*.js>;
+               write_file 'static/js.js', JavaScript::Minifier::XS::minify $js;
+       }
+ }
+ my $css_mtime = -M 'static/css/slate.css' // 0;
+ for (<css/*>, <css/themes/*>) {
+       if (!$css_mtime || $css_mtime > -M) {
+               make_css;
+               last
+       }
+ }
+ my $js_mtime = -M 'static/js.js' // 0;
+ for (<js/*>) {
+       if (!$js_mtime || $js_mtime > -M) {
+               make_js;
+               last
+       }
+ }
++
++my $sprite_mtime = -M 'static/logos.png' // 0;
++for (<js/*>) {
++      if (!$sprite_mtime || $sprite_mtime > -M) {
++              make_sprite;
++              last
++      }
 +}
 +
 +package
 +  Local::CSS::SpriteMaker;
 +
 +use parent qw/CSS::SpriteMaker/;
 +
 +sub _get_stylesheet_string {
 +      my $self = shift;
 +      my @ret = split "\n", $self->SUPER::_get_stylesheet_string(@_);
 +      shift @ret;
 +      @ret = sort @ret;
 +      unshift @ret, <<EOF;
 +a.logo {
 +      background-image: url("https://static.mindcoding.ro/static/logos.png");
 +      background-repeat: no-repeat;
 +      display: inline-block;
 +      vertical-align: middle;
 +}
 +EOF
 +      join "\n", @ret;
 +}
This page took 0.012901 seconds and 4 git commands to generate.