summaryrefslogtreecommitdiff
path: root/javascript/jsPacker/jsPacker.pl
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/jsPacker/jsPacker.pl')
-rw-r--r--javascript/jsPacker/jsPacker.pl163
1 files changed, 0 insertions, 163 deletions
diff --git a/javascript/jsPacker/jsPacker.pl b/javascript/jsPacker/jsPacker.pl
deleted file mode 100644
index 80f7236..0000000
--- a/javascript/jsPacker/jsPacker.pl
+++ /dev/null
@@ -1,163 +0,0 @@
-#!perl
-#jsPacker (July 2005)
-#
-use strict;
-use Pack;
-use vars qw($PROGNAME $VERSION
- $opt_h $opt_q $opt_v $opt_i $opt_o $opt_e $opt_f $opt_s);
-use Getopt::Std;
-
-$PROGNAME = $0;
-$VERSION = '1.00b';
-
-my $Description = 'A JavaScript Compressor/Obfuscator';
-my $Version = "v$VERSION\[p$Pack::VERSION-pm$Pack::PM_VERSION\]";
-
-# "English" versions of settings
-my %ENCODINGS = (0=>'None', 10=>'Decimal', 36=>'Normal', 62=>'Normal', 95=>'High-ascii');
-my %SETTINGS = (0=>'No', 1=>'Yes');
-
-exit(0) if &main();
-exit(1);
-
-################
-# Sub-routines #
-################
-# Main program
-sub main {
- # Get command line options
- &getopts('hqvfsi:o:e:');
- $opt_h ||= 0; # $opt_h shows usage and exits
- $opt_q ||= 0; # $opt_q sets quiet mode (no stdout output)
- $opt_v ||= 0; # $opt_v shows version and exits
- $opt_i ||= ''; # $opt_i is input file. Required!
- $opt_o ||= ''; # $opt_o is output file. If not set, use standard output
- $opt_e ||= 0; # $opt_e encoding level (0,10,36,62,95)
- $opt_f ||= 0; # $opt_f use fast decoding
- $opt_s ||= 0; # $opt_x use special characters
-
- # Display help or version if requested
- if ($opt_h) {&usage("help")}
- if ($opt_v) {&usage("version")}
-
- # Constrain encoding level, fastdecoding and specialcharacters to allowed limits
- $opt_e = ($opt_e > 0) ? ($opt_e > 10) ? ($opt_e > 36) ? ($opt_e > 62) ? 95 : 62 : 36 : 10 : 0;
- $opt_f = ($opt_f) ? 1 : 0;
- $opt_s = ($opt_s) ? 1 : 0;
-
- # Do the job if an input file is specified
- if ($opt_i) {
- # Read the source script
- my $script = &readInputFile($opt_i);
- # Pack the source script
- my $packedscript = &Pack::pack($script,$opt_e, $opt_f, $opt_s);
- # Show what happened (if not in quiet mode)
- if (!$opt_q) {showJobDetails($opt_i, $opt_o, $opt_e, $opt_f,$opt_s,\$script,\$packedscript)}
- # Output the packed script
- if ($opt_o) {&writeOutputFile($opt_o,\$packedscript)} # to output file if specifed
- else {print "$packedscript"} # otherwise to STDOUT
- }
- else { # If no input file is specified, display help
- &usage();
- }
- return(1);
-}
-
-######################
-sub showJobDetails { #
-######################
-# Show details of input/output files, settings and compression ratio
- my ($inputfile, $outputfile,
- $encoding, $fastdecode, $specialchars,
- $instringref, $outstringref) = @_;
- print "$PROGNAME $Version\n";
- print "\tSource file : ";
- print "\"$inputfile\"\n";
- print (($outputfile) ? ("\tOutput file : \"$outputfile\"\n") : ''); # Print only if output is going to a file
- print "\tSettings : encoding=$ENCODINGS{$encoding} fastdecode=$SETTINGS{$fastdecode} specialchars=$SETTINGS{$specialchars}\n";
- print "\tCompression : " . &compressionRatio($instringref, $outstringref). "\n\n";
-
-}
-
-#####################
-sub readInputFile { #
-#####################
-# Read content (source script) from input file
- my $filename = shift;
- open(FH, $filename) || die "Error!!! Problem opening input file \"$filename\"!\n";
- my @content = <FH>;
- close(FH);
- return join('',@content);
-}
-
-#######################
-sub writeOutputFile { #
-#######################
-# Write content (packed script) to output file
- my ($filename,$refcontent) = @_;
- open(FH, ">$filename") || die "Error!!! Problem opening output file \"$filename\"\n";
- print(FH $$refcontent);
- close(FH);
-}
-
-########################
-sub compressionRatio { #
-########################
-# Calculate the ratio of output string to input string
- my ($sref1,$sref2) = @_;
- my $ratio = (length($$sref2) / (length($$sref1)||1));
- $ratio = sprintf "%.2f", $ratio;
- return $ratio;
-}
-
-#############
-sub usage { #
-#############
-# Inform user about usage, version and exit
- my $showusage = 0;
- my $showversion = 0;
- my $params = shift;
- if (defined $params) {
- if ($params eq "help") {$showusage = 1;}
- elsif ($params eq "version") {$showversion = 1;}
- else {$showusage = 1;}
- }
- else {$showversion = 1;}
- if ($showversion) {
- print<<EOT;
-
-$PROGNAME $Version
- $Description
-\tBased on "Packer.js" by Dean Edwards <http://dean.edwards.name/>
-\tPorted to Perl by Rob Seiler, ELR Software Pty Ltd <http://www.elr.com.au>
-\tCopyright 2005. License <http://creativecommons.org/licenses/LGPL/2.1/>
- Use "$PROGNAME -h" for options
-EOT
- exit(1);
- }
- if ($showusage) {
- print<<EOT;
-
-$PROGNAME $Version
- $Description
- Usage:
-\t$PROGNAME -i inputfile [-o outputfile] [-eX] [-f] [-s] [-qvh]\n
-\t-i <inputfile> (eg -i myscript.js)
-\t-o <outputfile> (eg -o myscript-p.js)
-\t-eN <encoding> [0=None 10=Numeric 62=Normal(alphanumeric) 95=High-ascii]
-\t-f <fast decode>
-\t-s <special characters>
-\t-q quiet mode
-\t-v version
-\t-h help
-
- Examples:
-\t$PROGNAME -i myscript.js
-\t$PROGNAME -i myscript.js -o packed.js
-\t$PROGNAME -i myscript.js -o packed.js -e10 -f -s
-\t$PROGNAME -i myscript.js -e95 -fsq > packed.js
-
-EOT
- exit(1);
- }
-}