diff options
author | Yorhel <git@yorhel.nl> | 2009-10-07 11:03:59 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-10-07 11:22:37 +0200 |
commit | e0161bd219a3004a3affdecd04d54a85f5cf9e1d (patch) | |
tree | 1761fcb2d6c9f5b76dabef82083221e9147eeaca | |
parent | bafb8b134744cba74a3a019fefb36091b0e19d13 (diff) |
JS: Moved script.js to data/ and added jsgen.pl to process it
While this 'processing' is currently limited to minifying the file if
JavaScript::Minifier::XS is available, this change would make it a lot
easier to make the strings in the JS code translatable.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | README | 3 | ||||
-rw-r--r-- | data/script.js (renamed from static/f/script.js) | 0 | ||||
-rwxr-xr-x | util/jsgen.pl | 24 | ||||
-rwxr-xr-x | util/vndb.pl | 12 |
5 files changed, 40 insertions, 0 deletions
@@ -1,5 +1,6 @@ /data/config.pl /data/log/ +/static/f/script.js /static/s/*/style.css /static/s/*/boxbg.png /static/cv/ @@ -52,6 +52,9 @@ Requirements Image::Magick CSS::Minifier::XS (optional, minimizes CSS output) + util/jsgen.pl + JavaScript::Minifier::XS (optional, minimizes JS output) + Contact diff --git a/static/f/script.js b/data/script.js index 07ad9866..07ad9866 100644 --- a/static/f/script.js +++ b/data/script.js diff --git a/util/jsgen.pl b/util/jsgen.pl new file mode 100755 index 00000000..d21f56c7 --- /dev/null +++ b/util/jsgen.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Cwd 'abs_path'; +eval { require JavaScript::Minifier::XS; }; + +our($ROOT, %O); +BEGIN { ($ROOT = abs_path $0) =~ s{/util/jsgen\.pl$}{}; } + + +sub jsgen { + # JavaScript::Minifier::XS doesn't correctly handle perl's unicode, + # so just do everything in raw bytes instead. + open my $JS, '<', "$ROOT/data/script.js" or die $!; + my $js = join '', <$JS>; + close $JS; + open my $NEWJS, '>', "$ROOT/static/f/script.js" or die $!; + print $NEWJS $JavaScript::Minifier::XS::VERSION ? JavaScript::Minifier::XS::minify($js) : $js; + close $NEWJS; +} + +jsgen; + diff --git a/util/vndb.pl b/util/vndb.pl index ed74a92f..609d47a8 100755 --- a/util/vndb.pl +++ b/util/vndb.pl @@ -28,6 +28,10 @@ our(%O, %S); $S{skins} = readskins(); +# automatically regenerate script.js when required and possible +checkjs(); + + # load lang.dat VNDB::L10N::loadfile(); @@ -113,3 +117,11 @@ sub readskins { return \%skins; } + +sub checkjs { + my $script = "$ROOT/static/f/script.js"; + system "$ROOT/util/jsgen.pl" if + (!-e $script && -x "$ROOT/static/f") + || (-e $script && -w $script && [stat $script]->[9] < [stat "$ROOT/data/script.js"]->[9]); +} + |