mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	
		
			
	
	
		
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/perl
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								my $doPlugin = 0;
							 | 
						||
| 
								 | 
							
								my $x = shift(@ARGV);
							 | 
						||
| 
								 | 
							
								if ($x !~ /^-p/) { unshift(@ARGV, $x); }
							 | 
						||
| 
								 | 
							
								else { $doPlugin=1; }
							 | 
						||
| 
								 | 
							
								my $injs = shift(@ARGV);
							 | 
						||
| 
								 | 
							
								my $outjs = shift(@ARGV);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if ($injs eq '' or $outjs eq '') {
							 | 
						||
| 
								 | 
							
									print "Please use this script like this: makemini.pl [-p] in.js out.js\n";	
							 | 
						||
| 
								 | 
							
									exit(0);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								open(INJS, $injs);
							 | 
						||
| 
								 | 
							
								open(OUTJS, ">$outjs");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								my $output = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								while (<INJS>) {
							 | 
						||
| 
								 | 
							
									my $line = $_;
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									if ($line =~ /^\/\//) {
							 | 
						||
| 
								 | 
							
										# Remove lines that aren't important: //\
							 | 
						||
| 
								 | 
							
										$line = "" if ($line !~ /^\/\/\\/);
							 | 
						||
| 
								 | 
							
										$line = "\n//\\  THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL!\n\n" if ($line =~ /\/\/\\mini/);
							 | 
						||
| 
								 | 
							
									} else {
							 | 
						||
| 
								 | 
							
										chop $line;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										$line =~ s/, /,/g unless ($line =~ /'\], '/);           # ,{sp} -> ,
							 | 
						||
| 
								 | 
							
										$line =~ s/; /;/g;           # ;{sp} -> ;
							 | 
						||
| 
								 | 
							
										$line =~ s/ = /=/g;          # {sp}={sp} -> =
							 | 
						||
| 
								 | 
							
										$line =~ s/ == /==/g;        # {sp}=={sp} -> ==
							 | 
						||
| 
								 | 
							
										$line =~ s/ < /</g;          # {sp}<{sp} -> <
							 | 
						||
| 
								 | 
							
										$line =~ s/ > />/g;          # {sp}>{sp} -> >
							 | 
						||
| 
								 | 
							
										$line =~ s/ & /&/g;          # {sp}&{sp} -> &
							 | 
						||
| 
								 | 
							
										$line =~ s/ \| /\|/g;        # {sp}|{sp} -> |
							 | 
						||
| 
								 | 
							
										$line =~ s/ <= /<=/g;        # {sp}<={sp} -> <=
							 | 
						||
| 
								 | 
							
										$line =~ s/ >= />=/g;        # {sp}>={sp} -> >=
							 | 
						||
| 
								 | 
							
										$line =~ s/ \+ /\+/g;        # {sp}+{sp} -> +
							 | 
						||
| 
								 | 
							
										$line =~ s/ - /-/g;          # {sp}-{sp} -> -
							 | 
						||
| 
								 | 
							
										$line =~ s/ \/ /\//g;
							 | 
						||
| 
								 | 
							
										$line =~ s/ \|\| /\|\|/g;    # {sp}||{sp} -> ||
							 | 
						||
| 
								 | 
							
										$line =~ s/ && /&&/g;        # {sp}&&{sp} -> &&
							 | 
						||
| 
								 | 
							
										$line =~ s/ \? /\?/g;        # {sp?{sp} -> ?
							 | 
						||
| 
								 | 
							
										$line =~ s/ \: /\:/g;        # {sp}:{sp} -> :
							 | 
						||
| 
								 | 
							
										$line =~ s/ != /!=/g;        # {sp}!={sp} -> !=
							 | 
						||
| 
								 | 
							
										$line =~ s/ += /+=/g;        # {sp}+={sp} -> +=
							 | 
						||
| 
								 | 
							
										$line =~ s/ -= /-=/g;        # {sp}-={sp} -> -=
							 | 
						||
| 
								 | 
							
										$line =~ s/ \*= /\*=/g;      # {sp}*={sp} -> *=
							 | 
						||
| 
								 | 
							
										$line =~ s/ \|= /\|=/g;       # {sp}|={sp} -> |=
							 | 
						||
| 
								 | 
							
										$line =~ s/ \^= /\^=/g;       # {sp}^={sp} -> ^=
							 | 
						||
| 
								 | 
							
										$line =~ s/= /=/g;           # ={sp} -> =
							 | 
						||
| 
								 | 
							
										$line =~ s/ =/=/g;           # {sp}= -> =
							 | 
						||
| 
								 | 
							
										$line =~ s/\+ /\+/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/ \+/\+/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/- /-/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/ -/-/g;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										$line =~ s/\/\/(.*)$//g if ($line !~ /\/\/-->(.*)$/ && $line !~ /http:\/\/(.*)$/); # remove trailing comments unless its part of a javascript insert or web address
							 | 
						||
| 
								 | 
							
										$line = '' if $line =~ /^[\n|\/\/]/; # skip blank lines or any line starting with //
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										$line =~ s/^\s+//g;
							 | 
						||
| 
								 | 
							
										$line =~ s/\s+$//g;
							 | 
						||
| 
								 | 
							
										$line =~ s/(.+)\s+(.+)/$1 $2/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/\{ (\w)/\{$1/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/\) (\w)/\)$1/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/\) var/\)var/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/[ ]+\(/\(/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/\) \{/\)\{/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/\} else/\}else/g;
							 | 
						||
| 
								 | 
							
										$line =~ s/else \{/else\{/g;
							 | 
						||
| 
								 | 
							
										if ($line =~ /^\}$/) {
							 | 
						||
| 
								 | 
							
											if ($output =~ /;$/) {
							 | 
						||
| 
								 | 
							
												$output .= "}";
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												$output = substr($output,0,length($output)-1) . "}";
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											$line = '';
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									$output .= $line if ($line ne '');
							 | 
						||
| 
								 | 
							
									$output .= "\n" unless ($line =~ /;\n*$/ or $line =~ /{\n*$/);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$output =~ s/\n+/\n/g;
							 | 
						||
| 
								 | 
							
								$output .= "}\n" if ($doPlugin && $output !~ /\}\s+$/);
							 | 
						||
| 
								 | 
							
								# replace multiple ;var xx to ,xx if the line contains var
							 | 
						||
| 
								 | 
							
								@lines = split(/^/,$output);
							 | 
						||
| 
								 | 
							
								foreach $line (@lines) {
							 | 
						||
| 
								 | 
							
									$line =~ s/;var /,/g if ($line =~ /^\s*var / && $line !~ /(turn|ment|Capture\(\)|Div'\)|1000\));var /);
							 | 
						||
| 
								 | 
							
									print OUTJS $line;
							 | 
						||
| 
								 | 
							
								}
							 |