
git-svn-id: https://mathjax.svn.sourceforge.net/svnroot/mathjax/trunk@546 b8fd5906-0fad-46e2-a0d3-10d94ff285d1
48 lines
1.3 KiB
Perl
Executable File
48 lines
1.3 KiB
Perl
Executable File
#! /usr/local/bin/perl
|
|
|
|
# Compresses the MathJax javascript files that have changed
|
|
# since the last compression was performed.
|
|
# Note that the mathjax/font/HTML-CSS/TeX/png font data files
|
|
# are handled separately by packMJfonts.
|
|
# Note also that you need a copy of yuicompressor to be
|
|
# in this directory.
|
|
#
|
|
# Usage: ./packMJ
|
|
|
|
$SRC = "../../mathjax/unpacked";
|
|
$DST = $SRC; $DST =~ s!/unpacked$!!;
|
|
|
|
sub packDir {
|
|
my ($src,$dst) = @_;
|
|
opendir(SRC,$src);
|
|
my @files = grep(/^[^.]/,readdir(SRC));
|
|
closedir(SRC);
|
|
foreach my $file (@files) {
|
|
if (-d "$src/$file") {
|
|
next if "$src/$file" eq "$SRC/fonts";
|
|
next if "$src/$file" eq "$SRC/docs";
|
|
next if "$src/$file" eq "$SRC/unpacked";
|
|
if (! -e "$dst/$file") {mkdir "$dst/$file"}
|
|
packDir("$src/$file","$dst/$file");
|
|
} elsif ($file =~ m/\.js$/) {
|
|
packFile($src,$dst,$file);
|
|
}
|
|
}
|
|
}
|
|
|
|
sub packFile {
|
|
my ($src,$dst,$file) = @_;
|
|
$src .= "/$file"; $dst .= "/$file";
|
|
my ($stime,$ssize) = (stat($src))[9,7];
|
|
my $dtime = (stat($dst))[9];
|
|
return if $stime <= $dtime || $ssize <= 1024;
|
|
system("./packMJfile '$src' '$dst'");
|
|
my $dsize = (stat($dst))[7];
|
|
print "Size: $dsize was: $ssize [saved: ",$ssize-$dsize," or ",
|
|
sprintf("%.1f",100*($ssize-$dsize)/$ssize),"%]\n";
|
|
}
|
|
|
|
packDir($SRC,$DST);
|
|
|
|
1;
|