#!/usr/bin/perl %params; grep { if($_ =~ /([^=]+)=(.*)$/) { $params{uc($1)}=$2; } } @ARGV; if(!$params{'STOREALIAS'}) { print STDERR "Usage: config storealias= [storepass=] [keystore=]\n"; exit; } if(!$params{'STOREPASS'}) { print STDERR "No keystore password provided; will prompt during make\n"; } if(!$params{'KEYSTORE'}) { print STDERR "No keystore specified; will use ~/.keystore\n"; } $params{'CLASSPATH'} = &findlib("plugin"); open MAKE, ">Makefile"; print MAKE "# make webmuck\n". "\n". "JC = javac\n". "JAR = jar\n". "JS = jarsigner\n". "\n". "CLASSPATH = $params{'CLASSPATH'}\n". "TARGET = 1.1\n". "SOURCE = 1.2\n". "STOREALIAS = $params{'STOREALIAS'}\n". "STOREPASS = $params{'STOREPASS'}\n". "KEYSTORE = $params{'KEYSTORE'}\n". "\n". "# no user editable below\n". "#-------------------------------------------------------------------------------------------\n". "\n". "webmuck:\n". " \${JC} -classpath \${CLASSPATH} -source \${SOURCE} -target \${TARGET} -verbose -g Base64Decoder.java Base64Encoder.java httpsocket.java webmuck.java\n". "\n". " \${JAR} vcf webmuck.jar *.class\n". " \${JS} "; if($params{'KEYSTORE'}) { print MAKE "-keystore \${KEYSTORE} "; } if($params{'STOREPASS'}) { print MAKE "-storepass \${STOREPASS} "; A } print MAKE "webmuck.jar \${STOREALIAS}\n". "\n". "clean:\n". " rm *.jar *.class\n"; close MAKE; # find library file sub findlib { my $libname = $_[0]; my ($path, $lib, $apath, $file); $path = $ENV{'PATH'} . ':' . $ENV{'JAVA_HOME'} . '/lib:' . $ENV{'JDK_HOME'} . '/jre/lib'; my @path = split ':', $path; foreach $apath (@path) { opendir DIR, $apath; foreach $file (sort {$b cmp $a} readdir DIR) { if (($file =~ /[^.].*$libname\d*\.jar$/i) || ($file =~ /$libname\.jar$/i)) { $lib = $apath.'/'.$file; print "$lib\n"; last; # SEARCH; } if ((-d $apath.$file) && ($rc < 1) && ($file !~/^\./)) { $lib = &findlib ($tag, $libname, $apath.$file.'/', $rc+1); } } last if $lib ne ''; } SEARCH: if (($lib eq "") && ($rc == 0)) { print STDERR "Library not found $libname\n". "Try setting your JAVA_HOME or JDK_HOME\n"; return; } return $lib; }