2 # ***** BEGIN LICENSE BLOCK *****
3 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 # The contents of this file are subject to the Mozilla Public License Version
6 # 1.1 (the "License"); you may not use this file except in compliance with
7 # the License. You may obtain a copy of the License at
8 # http://www.mozilla.org/MPL/
10 # Software distributed under the License is distributed on an "AS IS" basis,
11 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 # for the specific language governing rights and limitations under the
15 # The Original Code is the Netscape security libraries.
17 # The Initial Developer of the Original Code is
18 # Netscape Communications Corporation.
19 # Portions created by the Initial Developer are Copyright (C) 1994-2000
20 # the Initial Developer. All Rights Reserved.
24 # Alternatively, the contents of this file may be used under the terms of
25 # either the GNU General Public License Version 2 or later (the "GPL"), or
26 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27 # in which case the provisions of the GPL or the LGPL are applicable instead
28 # of those above. If you wish to allow use of your version of this file only
29 # under the terms of either the GPL or the LGPL, and not to allow others to
30 # use your version of this file under the terms of the MPL, indicate your
31 # decision by deleting the provisions above and replace them with the notice
32 # and other provisions required by the GPL or the LGPL. If you do not delete
33 # the provisions above, a recipient may use your version of this file under
34 # the terms of any one of the MPL, the GPL or the LGPL.
36 # ***** END LICENSE BLOCK *****
44 print STDERR
"recursive copy called with $fromdir, $todir\n";
46 #remove any trailing slashes.
50 opendir(DIR
, $fromdir);
51 @dirlist = readdir DIR
;
55 foreach $file (@dirlist) {
56 if (! (($file eq "." ) || ($file eq "..") )) {
58 if (-d
"$fromdir/$file") {
59 print STDERR
"handling directory $todir/$file\n";
60 &rec_mkdir
("$todir/$file");
61 &recursive_copy
("$fromdir/$file","$todir/$file");
64 print STDERR
"handling file $fromdir/$file\n";
65 &my_copy
("$fromdir/$file","$todir/$file");
73 # print STDERR "Parsing Variables\n";
75 foreach $q ( @ARGV ) {
77 $var{$lastassigned} .= " $q";
80 $q =~ /^([^=]*)=(.*)/;
87 $lastassigned = $left;
90 print STDERR
"Assigned $lastassigned = $var{$lastassigned}\n";
95 # usage: &my_copy("dir/fromfile","dir2/tofile");
96 # do a 'copy' - files only, 'to' MUST be a filename, not a directory.
98 # fix this to be able to use copy on win nt.
108 if ( ! defined $var{OS_ARCH
}) {
109 die "OS_ARCH not defined!";
112 if ($var{OS_ARCH
} eq 'WINNT') {
118 print STDERR
"COPYING: $cpcmd $from $to\n";
119 system("$cpcmd $from $to");
130 open(FIN
, "<$from") || die("Can't read from file $from\n");
131 if ( ! open(FOUT
,">$to")) {
133 die "Can't write to file $to\n";
135 while (read(FIN
, $buf, 100000)) {
149 foreach $q (split(/\//,$arg)) {
151 if (! ($t =~ /\.\.$/)) {