Blame nss/coreconf/release.pl

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