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

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. print STDERR "import.pln";
  30. require('coreconf.pl');
  31. $returncode =0;
  32. #######-- read in variables on command line into %var
  33. $var{ZIP} = "zip";
  34. $var{UNZIP} = "unzip -o";
  35. &parse_argv;
  36. if (! ($var{IMPORTS} =~ /w/)) {
  37.     print STDERR "nothing to importn";
  38. }
  39. ######-- Do the import!
  40. foreach $import (split(/ /,$var{IMPORTS}) ) {
  41.     print STDERR "nnIMPORTING .... $importn-----------------------------n";
  42. # if a specific version specified in IMPORT variable
  43. # (if $import has a slash in it)
  44.     if ($import =~ ///) {
  45.         # $component=everything before the first slash of $import
  46. $import =~ m|^([^/]*)/|; 
  47. $component = $1;
  48. $import =~ m|^(.*)/([^/]*)$|;
  49. # $path=everything before the last slash of $import
  50. $path = $1;
  51. # $version=everything after the last slash of $import
  52. $version = $2;
  53. if ($var{VERSION} ne "current") {
  54.     $version = $var{VERSION};
  55. }
  56.     }
  57.     else {
  58. $component = $import;
  59. $path = $import;
  60. $version = $var{VERSION};
  61.     }
  62.     $releasejardir = "$var{RELEASE_TREE}/$path";
  63.     if ($version eq "current") {
  64. print STDERR "Current version specified. Reading 'current' file ... n";
  65. open(CURRENT,"$releasejardir/current") || die "NO CURRENT FILEn";
  66. $version = <CURRENT>;
  67. $version =~ s/(r?n)*$//; # remove any trailing [CR/]LF's
  68. close(CURRENT);
  69. print STDERR "Using version $versionn";
  70. if ( $version eq "") {
  71.     die "Current version file empty. Stoppingn";
  72. }
  73.     }
  74.     
  75.     $releasejardir = "$releasejardir/$version";
  76.     if ( ! -d $releasejardir) {
  77. die "$releasejardir doesn't exist (Invalid Version?)n";
  78.     }
  79.     foreach $jarfile (split(/ /,$var{FILES})) {
  80. ($relpath,$distpath,$options) = split(/|/, $var{$jarfile});
  81. if ($var{'OVERRIDE_IMPORT_CHECK'} eq 'YES') {
  82.     $options =~ s/v//g;
  83. }
  84. if ( $relpath ne "") { $releasejarpathname = "$releasejardir/$relpath";}
  85. else { $releasejarpathname = $releasejardir; }
  86. # If a component doesn't have IDG versions, import the DBG ones
  87.     if( ! -e "$releasejarpathname/$jarfile" ) {
  88.         if( $relpath =~ /IDG.OBJ$/ ) {
  89.             $relpath =~ s/IDG.OBJ/DBG.OBJ/;
  90.             $releasejarpathname = "$releasejardir/$relpath";
  91.         } elsif( $relpath =~ /IDG.OBJD$/ ) {
  92.             $relpath =~ s/IDG.OBJD/DBG.OBJD/;
  93.             $releasejarpathname = "$releasejardir/$relpath";
  94.         }
  95.     }
  96. if (-e "$releasejarpathname/$jarfile") {
  97.     print STDERR "nWorking on jarfile: $jarfilen";
  98.     
  99.     if ($distpath =~ m|/$|) {
  100. $distpathname = "$distpath$component";
  101.     }
  102.     else {
  103. $distpathname = "$distpath"; 
  104.     }
  105.   
  106.   
  107. #the block below is used to determine whether or not the xp headers have
  108. #already been imported for this component
  109.     $doimport = 1;
  110.   if ($options =~ /v/) {   # if we should check the imported version
  111.       print STDERR "Checking if version file exists $distpathname/versionn";
  112.       if (-e "$distpathname/version") {
  113.   open( VFILE, "<$distpathname/version") ||
  114.       die "Cannot open $distpathname/version for reading. Permissions?n";
  115.   $importversion = <VFILE>;
  116.   close (VFILE);
  117.   $importversion =~ s/r?n$//;   # Strip off any trailing CR/LF
  118.   if ($version eq $importversion) {
  119.       print STDERR "$distpathname version '$importversion' already imported. Skipping...n";
  120.       $doimport =0;
  121.   }
  122.       }
  123.   }
  124.   
  125.   if ($doimport == 1) {
  126.       if (! -d "$distpathname") {
  127.   &rec_mkdir("$distpathname");
  128.       }
  129.       # delete the stuff in there already.
  130.       # (this should really be recursive delete.)
  131.       
  132.       if ($options =~ /v/) {
  133.   $remheader = "nREMOVING files in '$distpathname/' :";
  134.   opendir(DIR,"$distpathname") ||
  135.       die ("Cannot read directory $distpathnamen");
  136.   @filelist = readdir(DIR);
  137.   closedir(DIR);
  138.   foreach $file ( @filelist ) {
  139.       if (! ($file =~ m!/.?.$!) ) {
  140.   if (! (-d $file)) {
  141.       $file =~ m!([^/]*)$!;
  142.       print STDERR "$remheader $1";
  143.       $remheader = " ";
  144.       unlink "$distpathname/$file";
  145.   }
  146.       }
  147.   }
  148.       }
  149.       print STDERR "nn";
  150.       print STDERR "nExtracting jarfile '$jarfile' to local directory $distpathname/n";
  151.       
  152.       print STDERR "$var{UNZIP} $releasejarpathname/$jarfile -d $distpathnamen";
  153.       system("$var{UNZIP} $releasejarpathname/$jarfile -d $distpathname");
  154.       
  155.       $r = $?;
  156.       if ($options =~ /v/) {
  157.   if ($r == 0) {
  158.       unlink ("$distpathname/version");
  159.       if (open(VFILE,">$distpathname/version")) {
  160.   print VFILE "$versionn";
  161.   close(VFILE);
  162.       }
  163.   }
  164.   else {
  165.       print STDERR "Could not create '$distpathname/version'. Permissions?n";
  166.       $returncode ++;
  167.   }
  168.       }
  169.   }  # if (doimport)
  170. } # if (-e releasejarpathname/jarfile)
  171.     } # foreach jarfile)
  172. } # foreach IMPORT
  173. exit($returncode);