security/nss/coreconf/cpdist.pl

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/security/nss/coreconf/cpdist.pl	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,167 @@
     1.4 +#! /usr/local/bin/perl
     1.5 +#
     1.6 +# This Source Code Form is subject to the terms of the Mozilla Public
     1.7 +# License, v. 2.0. If a copy of the MPL was not distributed with this
     1.8 +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
     1.9 +require('coreconf.pl');
    1.10 +
    1.11 +#######-- read in variables on command line into %var
    1.12 +
    1.13 +&parse_argv;
    1.14 + 
    1.15 +### do the copy
    1.16 +
    1.17 +print STDERR "RELEASE TREE / MODULE =  $var{RELEASE_TREE} $var{MODULE}\n";
    1.18 +
    1.19 +
    1.20 +
    1.21 +# 1
    1.22 +if ($var{RELEASE} eq "") { exit; } # Can't do release here, so exit.
    1.23 +
    1.24 +# 2
    1.25 +#if (! ($var{RELEASE} =~ /\//)) {   # if no specific version is specified in RELEASE variable
    1.26 +#    $component = $var{RELEASE};
    1.27 +#}
    1.28 +#else {  # if a subcomponent/version is given in the RELEASE variable
    1.29 +#        $var{RELEASE} =~ m|^([^/]*)/|;  
    1.30 +#	$component = $1;           # everything before the first slash;
    1.31 +#    }
    1.32 +
    1.33 +# 3
    1.34 +$path = $var{RELEASE};
    1.35 +
    1.36 +
    1.37 +# 4
    1.38 +# find out what directory we would create for 'today'
    1.39 +
    1.40 +$year = (localtime)[5] + 1900;
    1.41 +$month = (localtime)[4] + 1;
    1.42 +$day = (localtime)[3];
    1.43 +$today = sprintf( "%d%02d%02d", $year, $month, $day );
    1.44 +
    1.45 +# 5
    1.46 +# if version is null, then set the version to today.
    1.47 +if ($var{"RELEASE_VERSION"} eq "") {
    1.48 +    $var{"RELEASE_VERSION"} = $today;
    1.49 +}
    1.50 +
    1.51 +#6
    1.52 +$version = $var{"RELEASE_VERSION"};  # set RELEASE_VERSION to passed in variable
    1.53 +
    1.54 +#7
    1.55 +# if version is today, then we will want to make a 'current' link.
    1.56 +
    1.57 +if ($version eq $today) {
    1.58 +    $create_current = 1;
    1.59 +}
    1.60 +
    1.61 +#8
    1.62 +# version can be a) passed in value from command line, b) value in manifest.mn
    1.63 +# or c) computed value such as '19970909'
    1.64 +
    1.65 +
    1.66 +$dir = "$var{'RELEASE_TREE'}/$path";
    1.67 +
    1.68 +#9
    1.69 +if (! (-e "$dir/$version" && -d "$dir/$version")) {
    1.70 +    print "making dir $dir \n";
    1.71 +    &rec_mkdir("$dir/$version");
    1.72 +}
    1.73 +
    1.74 +
    1.75 +
    1.76 +print "version = $version\n";
    1.77 +print "path = $path\n";
    1.78 +print "var{release_tree} = $var{'RELEASE_TREE'}\n";
    1.79 +print "dir = $dir   = RELEASE_TREE/path\n";
    1.80 +
    1.81 +
    1.82 +#10
    1.83 +if ($create_current == 1) {
    1.84 +
    1.85 +# unlinking and linking always occurs, even if the link is correct
    1.86 +    print "unlinking $dir/current\n";
    1.87 +    unlink("$dir/current");
    1.88 +    
    1.89 +    print "putting version number $today into 'current' file..";
    1.90 +
    1.91 +    open(FILE,">$dir/current") || die " couldn't open current\n";
    1.92 +    print FILE "$today\n";
    1.93 +    close(FILE);
    1.94 +    print " ..done\n"
    1.95 +    
    1.96 +}
    1.97 +
    1.98 +&rec_mkdir("$dir/$version/$var{'RELEASE_MD_DIR'}");
    1.99 +&rec_mkdir("$dir/$version/$var{'RELEASE_XP_DIR'}");
   1.100 +
   1.101 +
   1.102 +
   1.103 +
   1.104 +foreach $jarfile (split(/ /,$var{FILES}) ) {
   1.105 +    print STDERR "---------------------------------------------\n";
   1.106 +    
   1.107 +    $jarinfo = $var{$jarfile};
   1.108 + 
   1.109 +    ($jardir,$jaropts) = split(/\|/,$jarinfo);
   1.110 + 
   1.111 +    if ($jaropts =~ /f/) {
   1.112 +      print STDERR "Copying files $jardir....\n";
   1.113 +    }
   1.114 +    else {
   1.115 +      print STDERR "Copying jar file $jarfile....\n";
   1.116 +    }
   1.117 +    
   1.118 +    print "jaropts = $jaropts\n";
   1.119 +    
   1.120 +    if ($jaropts =~ /m/) {
   1.121 +      $destdir = $var{"RELEASE_MD_DIR"};
   1.122 +      print "found m, using MD dir $destdir\n";
   1.123 +    }
   1.124 +    elsif ($jaropts =~ /x/) {
   1.125 +      $destdir = $var{"RELEASE_XP_DIR"};
   1.126 +      print "found x, using XP dir $destdir\n";
   1.127 +    }
   1.128 +    else {
   1.129 +      die "Error: must specify m or x in jar options in $jarinfo line\n";
   1.130 +    }
   1.131 +    
   1.132 +    
   1.133 +    $distdir = "$dir/$version/$destdir";
   1.134 +    
   1.135 +
   1.136 +
   1.137 +    if ($jaropts =~ /f/) {
   1.138 +
   1.139 +      print "splitting: \"$jardir\"\n";
   1.140 +      for $srcfile (split(/ /,$jardir)) {
   1.141 +
   1.142 +#if srcfile has a slash
   1.143 +	if ($srcfile =~ m|/|) {
   1.144 +#pull out everything before the last slash into $1
   1.145 +	  $srcfile =~ m|(.*)/|;
   1.146 +	  $distsubdir = "/$1";
   1.147 +	  print "making dir $distdir$distsubdir\n";
   1.148 +	  &rec_mkdir("$distdir$distsubdir");
   1.149 +	}
   1.150 +	print "copy: from $srcfile\n";
   1.151 +	print "      to   $distdir$distsubdir\n";
   1.152 +	$srcprefix = "";
   1.153 +	if ($jaropts =~/m/) {
   1.154 +	  $srcprefix = "$var{'PLATFORM'}/";
   1.155 +	}
   1.156 +	system("cp $srcprefix$srcfile $distdir$distsubdir");
   1.157 +      }
   1.158 +    }
   1.159 +    else {
   1.160 +      $srcfile = "$var{SOURCE_RELEASE_PREFIX}/$jardir/$jarfile";
   1.161 +      
   1.162 +      print "copy: from $srcfile\n";
   1.163 +      print "      to   $distdir\n";
   1.164 +      
   1.165 +      system("cp $srcfile $distdir");
   1.166 +      
   1.167 +    }
   1.168 +    
   1.169 +  }
   1.170 +

mercurial