ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/Utilities/AddDir.pm
Revision: 1.4
Committed: Mon Feb 14 12:10:36 2000 UTC (25 years, 3 months ago) by williamc
Content type: text/plain
Branch: MAIN
CVS Tags: V0_18_1, ProtoEnd
Changes since 1.3: +27 -1 lines
Log Message:
Add copydir function

File Contents

# Content
1 package AddDir;
2 require 5.001;
3 require Exporter;
4 use Cwd;
5 @ISA = qw(Exporter);
6 @EXPORT = qw(adddir copydir);
7
8
9 sub adddir {
10 my $indir=shift;
11 my $startdir=cwd;
12 my @dir=split /\//, $indir;
13
14 if ( $indir=~/^\// ) {
15 chdir "/";
16 shift @dir;
17 }
18 umask 02;
19 foreach $dirname ( @dir ) {
20 next if ( $dirname eq "" );
21 if ( ! -e $dirname ) {
22 mkdir ( $dirname , 0775) ||
23 die "cannot make directory ".$dirname." $!\n";
24 print $i." ".$dirname."\n" if $debug;
25 }
26 chdir $dirname;
27 }
28 chdir $startdir;
29 }
30
31 sub copydir {
32 my $src=shift;
33 my $dest=shift;
34
35 use DirHandle;
36 use File::Copy;
37
38 #print "Copying $src to $dest\n";
39 adddir($dest);
40 my $dh=DirHandle->new($src);
41 my @allfiles=$dh->read();
42
43 my $file;
44 foreach $file ( @allfiles ) {
45 next if $file=~/^\.\.?/;
46 if ( -d $src."/".$file ) {
47 copydir($src."/".$file,$dest."/".$file);
48 }
49 else {
50 copy($src."/".$file,$dest."/".$file)
51 }
52 }
53 undef $dh;
54 }