diff options
Diffstat (limited to 'security/nss/coreconf/release.pl')
-rwxr-xr-x | security/nss/coreconf/release.pl | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/security/nss/coreconf/release.pl b/security/nss/coreconf/release.pl new file mode 100755 index 000000000..7cde19d5e --- /dev/null +++ b/security/nss/coreconf/release.pl @@ -0,0 +1,112 @@ +#! /usr/local/bin/perl +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + + +require('coreconf.pl'); + +#######-- read in variables on command line into %var + +$use_jar = 1; +$ZIP = "$ENV{JAVA_HOME}/bin/jar"; + +if ( $ENV{JAVA_HOME} eq "" ) { + $ZIP = "zip"; + $use_jar = 0; +} + + +&parse_argv; + + +######-- Do the packaging of jars. + +foreach $jarfile (split(/ /,$var{FILES}) ) { + print STDERR "---------------------------------------------\n"; + print STDERR "Packaging jar file $jarfile....\n"; + + $jarinfo = $var{$jarfile}; + + ($jardir,$jaropts) = split(/\|/,$jarinfo); + + if ( $use_jar ) { + $zipoptions = "-cvf"; + } else { + $zipoptions = "-T -r"; + if ($jaropts =~ /a/) { + if ($var{OS_ARCH} eq 'WINNT') { + $zipoptions .= ' -ll'; + } + } + } + +# just in case the directory ends in a /, remove it + if ($jardir =~ /\/$/) { + chop $jardir; + } + + $dirdepth --; + + print STDERR "jardir = $jardir\n"; + system("ls $jardir"); + + if (-d $jardir) { + + +# count the number of slashes + + $slashes =0; + + foreach $i (split(//,$jardir)) { + if ($i =~ /\//) { + $slashes++; + } + } + + $dotdots =0; + + foreach $i (split(m|/|,$jardir)) { + if ($i eq '..') { + $dotdots ++; + } + } + + $dirdepth = ($slashes +1) - (2*$dotdots); + + print STDERR "changing dir $jardir\n"; + chdir($jardir); + print STDERR "making dir META-INF\n"; + mkdir("META-INF",0755); + + $filelist = ""; + opendir(DIR,"."); + while ($_ = readdir(DIR)) { + if (! ( ($_ eq '.') || ($_ eq '..'))) { + if ( $jaropts =~ /i/) { + if (! /^include$/) { + $filelist .= "$_ "; + } + } + else { + $filelist .= "$_ "; + } + } + } + closedir(DIR); + + print STDERR "$ZIP $zipoptions $jarfile $filelist\n"; + system("$ZIP $zipoptions $jarfile $filelist"); + rmdir("META-INF"); + for $i (1 .. $dirdepth) { + chdir(".."); + print STDERR "chdir ..\n"; + } + } + else { + print STDERR "Directory $jardir doesn't exist\n"; + } + +} + |