root/vendor/overlib/makemini.pl

Revision 2693, 2.9 kB (checked in by demian, 2 months ago)

checking in datagrid js libs

  • Property svn:executable set to *
Line 
1 #!/usr/bin/perl
2
3 my $doPlugin = 0;
4 my $x = shift(@ARGV);
5 if ($x !~ /^-p/) { unshift(@ARGV, $x); }
6 else { $doPlugin=1; }
7 my $injs = shift(@ARGV);
8 my $outjs = shift(@ARGV);
9
10 if ($injs eq '' or $outjs eq '') {
11         print "Please use this script like this: makemini.pl [-p] in.js out.js\n";     
12         exit(0);
13 }
14
15
16 open(INJS, $injs);
17 open(OUTJS, ">$outjs");
18
19 my $output = '';
20
21 while (<INJS>) {
22         my $line = $_;
23        
24         if ($line =~ /^\/\//) {
25                 # Remove lines that aren't important: //\
26                 $line = "" if ($line !~ /^\/\/\\/);
27                 $line = "\n//\\  THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL!\n\n" if ($line =~ /\/\/\\mini/);
28         } else {
29                 chop $line;
30
31                 $line =~ s/, /,/g unless ($line =~ /'\], '/);           # ,{sp} -> ,
32                 $line =~ s/; /;/g;           # ;{sp} -> ;
33                 $line =~ s/ = /=/g;          # {sp}={sp} -> =
34                 $line =~ s/ == /==/g;        # {sp}=={sp} -> ==
35                 $line =~ s/ < /</g;          # {sp}<{sp} -> <
36                 $line =~ s/ > />/g;          # {sp}>{sp} -> >
37                 $line =~ s/ & /&/g;          # {sp}&{sp} -> &
38                 $line =~ s/ \| /\|/g;        # {sp}|{sp} -> |
39                 $line =~ s/ <= /<=/g;        # {sp}<={sp} -> <=
40                 $line =~ s/ >= />=/g;        # {sp}>={sp} -> >=
41                 $line =~ s/ \+ /\+/g;        # {sp}+{sp} -> +
42                 $line =~ s/ - /-/g;          # {sp}-{sp} -> -
43                 $line =~ s/ \/ /\//g;
44                 $line =~ s/ \|\| /\|\|/g;    # {sp}||{sp} -> ||
45                 $line =~ s/ && /&&/g;        # {sp}&&{sp} -> &&
46                 $line =~ s/ \? /\?/g;        # {sp?{sp} -> ?
47                 $line =~ s/ \: /\:/g;        # {sp}:{sp} -> :
48                 $line =~ s/ != /!=/g;        # {sp}!={sp} -> !=
49                 $line =~ s/ += /+=/g;        # {sp}+={sp} -> +=
50                 $line =~ s/ -= /-=/g;        # {sp}-={sp} -> -=
51                 $line =~ s/ \*= /\*=/g;      # {sp}*={sp} -> *=
52                 $line =~ s/= /=/g;           # ={sp} -> =
53                 $line =~ s/ =/=/g;           # {sp}= -> =
54                 $line =~ s/\+ /\+/g;
55                 $line =~ s/ \+/\+/g;
56                 $line =~ s/- /-/g;
57                 $line =~ s/ -/-/g;
58
59                 $line =~ s/\/\/(.*)$//g if ($line !~ /\/\/-->(.*)$/); # remove trailing comments unless its part of a javascript insert
60                 $line = '' if $line =~ /^[\n|\/\/]/; # skip blank lines or any line starting with //
61
62                 $line =~ s/^\s+//g;
63                 $line =~ s/\s+$//g;
64                 $line =~ s/(.+)\s+(.+)/$1 $2/g;
65                 $line =~ s/\{ (\w)/\{$1/g;
66                 $line =~ s/\) (\w)/\)$1/g;
67                 $line =~ s/\) var/\)var/g;
68                 $line =~ s/[ ]+\(/\(/g;
69                 $line =~ s/\) \{/\)\{/g;
70                 $line =~ s/\} else/\}else/g;
71                 $line =~ s/else \{/else\{/g;
72                 if ($line =~ /^\}$/) {
73                         $output = substr($output,0,length($output)-1) . "}";
74                         $line = '';
75                 }
76         }
77
78         $output .= $line if ($line ne '');
79         $output .= "\n" unless ($line =~ /;\n*$/ or $line =~ /{\n*$/);
80 }
81
82 $output =~ s/\n+/\n/g;
83 $output .= "}\n" if ($doPlugin && $output !~ /\}\s+$/);
84 # replace multiple ;var xx to ,xx if the line contains var
85 @lines = split(/^/,$output);
86 foreach $line (@lines) {
87         $line =~ s/;var /,/g if ($line =~ /^\s*var / && $line !~ /(turn|ment|Capture\(\)|Div'\)|1000\));var /);
88         print OUTJS $line;
89 }
90
Note: See TracBrowser for help on using the browser.