release.pl
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:3k
源码类别:

CA认证

开发平台:

WINDOWS

  1. #! /usr/local/bin/perl
  2. #
  3. # The contents of this file are subject to the Mozilla Public
  4. # License Version 1.1 (the "License"); you may not use this file
  5. # except in compliance with the License. You may obtain a copy of
  6. # the License at http://www.mozilla.org/MPL/
  7. # Software distributed under the License is distributed on an "AS
  8. # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9. # implied. See the License for the specific language governing
  10. # rights and limitations under the License.
  11. # The Original Code is the Netscape security libraries.
  12. # The Initial Developer of the Original Code is Netscape
  13. # Communications Corporation.  Portions created by Netscape are 
  14. # Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  15. # Rights Reserved.
  16. # Contributor(s):
  17. # Alternatively, the contents of this file may be used under the
  18. # terms of the GNU General Public License Version 2 or later (the
  19. # "GPL"), in which case the provisions of the GPL are applicable 
  20. # instead of those above.  If you wish to allow use of your 
  21. # version of this file only under the terms of the GPL and not to
  22. # allow others to use your version of this file under the MPL,
  23. # indicate your decision by deleting the provisions above and
  24. # replace them with the notice and other provisions required by
  25. # the GPL.  If you do not delete the provisions above, a recipient
  26. # may use your version of this file under either the MPL or the
  27. # GPL.
  28. #
  29. require('coreconf.pl');
  30. #######-- read in variables on command line into %var
  31. $var{ZIP} = "zip";
  32. &parse_argv;
  33.  
  34. ######-- Do the packaging of jars.
  35. foreach $jarfile (split(/ /,$var{FILES}) ) {
  36.     print STDERR "---------------------------------------------n";
  37.     print STDERR "Packaging jar file $jarfile....n";
  38.     $jarinfo = $var{$jarfile};
  39.     ($jardir,$jaropts) = split(/|/,$jarinfo);
  40.     $zipoptions = "-T";
  41.     if ($jaropts =~ /a/) {
  42. if ($var{OS_ARCH} eq 'WINNT') {
  43.     $zipoptions .= ' -ll';
  44. }
  45.     }
  46. # don't compress jar files containing classes since some java
  47. # implementations do not implement decompression correctly
  48. if ( ($jarfile eq 'xpclass.jar') || ($jarfile eq 'xpclass_dbg.jar') ) {
  49.     $zipoptions .= ' -0';
  50. }
  51. # just in case the directory ends in a /, remove it
  52.     if ($jardir =~ //$/) {
  53. chop $jardir;
  54.     }
  55.     $dirdepth --;
  56.     
  57.     print STDERR "jardir = $jardirn";
  58.     system("ls $jardir");
  59.     if (-d $jardir) {
  60. # count the number of slashes
  61. $slashes =0;
  62. foreach $i (split(//,$jardir)) {
  63.     if ($i =~ ///) {
  64. $slashes++;
  65.     }
  66. }
  67. $dotdots =0;
  68. foreach $i (split(m|/|,$jardir)) {
  69.     if ($i eq '..') {
  70. $dotdots ++;
  71.     }
  72. }
  73. $dirdepth = ($slashes +1) - (2*$dotdots);
  74. print STDERR "changing dir $jardirn";
  75. chdir($jardir);
  76. print STDERR "making dir META-INFn";
  77. mkdir("META-INF",0755);
  78. $filelist = "";
  79. opendir(DIR,".");
  80. while ($_ = readdir(DIR)) {
  81.     if (! ( ($_ eq '.') || ($_ eq '..'))) {
  82. if ( $jaropts =~ /i/) {
  83.     if (! /^include$/) {
  84. $filelist .= "$_ ";
  85.     }
  86. }
  87. else {
  88.     $filelist .= "$_ ";
  89. }
  90.     }
  91. }
  92. closedir(DIR);
  93. print STDERR "zip $zipoptions -r $jarfile $filelistn";
  94. system("zip $zipoptions -r $jarfile $filelist");
  95. rmdir("META-INF");
  96.     for $i (1 .. $dirdepth) {
  97.     chdir("..");
  98.     print STDERR "chdir ..n";
  99. }
  100.     }
  101.     else {
  102.         print STDERR "Directory $jardir doesn't existn";
  103.     }
  104. }