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

CA认证

开发平台:

WINDOWS

  1. #
  2. # The contents of this file are subject to the Mozilla Public
  3. # License Version 1.1 (the "License"); you may not use this file
  4. # except in compliance with the License. You may obtain a copy of
  5. # the License at http://www.mozilla.org/MPL/
  6. # Software distributed under the License is distributed on an "AS
  7. # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  8. # implied. See the License for the specific language governing
  9. # rights and limitations under the License.
  10. # The Original Code is the Netscape security libraries.
  11. # The Initial Developer of the Original Code is Netscape
  12. # Communications Corporation.  Portions created by Netscape are 
  13. # Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  14. # Rights Reserved.
  15. # Contributor(s):
  16. # Alternatively, the contents of this file may be used under the
  17. # terms of the GNU General Public License Version 2 or later (the
  18. # "GPL"), in which case the provisions of the GPL are applicable 
  19. # instead of those above.  If you wish to allow use of your 
  20. # version of this file only under the terms of the GPL and not to
  21. # allow others to use your version of this file under the MPL,
  22. # indicate your decision by deleting the provisions above and
  23. # replace them with the notice and other provisions required by
  24. # the GPL.  If you do not delete the provisions above, a recipient
  25. # may use your version of this file under either the MPL or the
  26. # GPL.
  27. #
  28. sub recursive_copy {
  29.     local($fromdir);
  30.     local($todir);
  31.     local(@dirlist);
  32.     $fromdir = shift;
  33.     $todir = shift;
  34.   
  35.     print STDERR "recursive copy called with $fromdir, $todirn";
  36. #remove any trailing slashes.
  37.     $fromdir =~ s//$//;
  38.     $todir =~ s//$//;
  39.     
  40.     opendir(DIR, $fromdir);
  41.     @dirlist = readdir DIR;
  42.     close DIR;
  43.     foreach $file (@dirlist) {
  44. if  (! (($file eq "." ) || ($file eq "..") )) {
  45.     
  46.     if (-d "$fromdir/$file") {
  47. print STDERR "handling directory $todir/$filen";
  48. &rec_mkdir("$todir/$file");
  49. &recursive_copy("$fromdir/$file","$todir/$file");
  50.     }
  51.     else {
  52. print STDERR "handling file $fromdir/$filen";
  53. &my_copy("$fromdir/$file","$todir/$file");
  54.     }
  55. }
  56.     }
  57. }
  58. sub parse_argv {
  59. #    print STDERR "Parsing Variablesn";
  60.     foreach $q ( @ARGV ) {
  61. if (! ($q =~ /=/)) {
  62.     $var{$lastassigned} .= " $q";
  63. }
  64. else {
  65.    $q =~ /^([^=]*)=(.*)/;
  66.    $left = $1;
  67.    $right = $2;
  68.    $right =~ s/ *$//;
  69.    $var{$left} = $right;
  70.    $lastassigned = $left;
  71.    }
  72. print STDERR "Assigned $lastassigned = $var{$lastassigned}n";
  73.     }
  74. }
  75. # usage: &my_copy("dir/fromfile","dir2/tofile");
  76. # do a 'copy' - files only, 'to' MUST be a filename, not a directory.
  77. # fix this to be able to use copy on win nt.
  78. sub my_copy {
  79.     local($from);
  80.     local($to);
  81.     local($cpcmd);
  82.     $from = shift;
  83.     $to = shift;
  84.     if ( ! defined $var{OS_ARCH}) {
  85. die "OS_ARCH not defined!";
  86.     }
  87.     else {
  88. if ($var{OS_ARCH} eq 'WINNT') {
  89.     $cpcmd = 'cp';
  90.      }
  91. else {
  92.     $cpcmd = 'cp';
  93.     }
  94. print STDERR "COPYING: $cpcmd $from $ton";
  95. system("$cpcmd $from $to");
  96.     }
  97. }
  98. sub old_my_copy {
  99.     local($from);
  100.     local($to);
  101.     $from = shift;
  102.     $to = shift;
  103.     open(FIN, "<$from") || die("Can't read from file $fromn");
  104.     if ( ! open(FOUT,">$to")) {
  105. close FIN;
  106. die "Can't write to file $ton";
  107.     }
  108.     while (read(FIN, $buf, 100000)) {
  109. print FOUT $buf;
  110.     }
  111.     close (FIN);
  112.     close (FOUT);
  113. }
  114. sub rec_mkdir {
  115.     local($arg);
  116.     local($t);
  117.     local($q);
  118.     $arg = shift;
  119.     $t = "";
  120.     foreach $q (split(///,$arg)) {
  121. $t .= $q;
  122. if (! ($t =~ /..$/)) {
  123.     if ($t =~ /./) {
  124. mkdir($t,0775);
  125.     }
  126. }
  127. $t.= '/';
  128.     }
  129. }
  130. 1;