ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/Utilities/AddDir.pm
Revision: 1.5
Committed: Fri Dec 1 14:51:01 2000 UTC (24 years, 5 months ago) by williamc
Content type: text/plain
Branch: MAIN
Changes since 1.4: +3 -1 lines
Log Message:
Check tagret directory exists before copying

File Contents

# User Rev Content
1 williamc 1.1 package AddDir;
2 williamc 1.2 require 5.001;
3 williamc 1.1 require Exporter;
4     use Cwd;
5     @ISA = qw(Exporter);
6 williamc 1.4 @EXPORT = qw(adddir copydir);
7    
8 williamc 1.1
9 williamc 1.3 sub adddir {
10 williamc 1.1 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 williamc 1.4 }
30    
31     sub copydir {
32     my $src=shift;
33     my $dest=shift;
34    
35     use DirHandle;
36     use File::Copy;
37    
38 williamc 1.5 # print "Copying $src to $dest\n";
39 williamc 1.4 adddir($dest);
40     my $dh=DirHandle->new($src);
41 williamc 1.5 if (defined $dh) {
42 williamc 1.4 my @allfiles=$dh->read();
43    
44     my $file;
45     foreach $file ( @allfiles ) {
46     next if $file=~/^\.\.?/;
47     if ( -d $src."/".$file ) {
48     copydir($src."/".$file,$dest."/".$file);
49     }
50     else {
51     copy($src."/".$file,$dest."/".$file)
52     }
53     }
54     undef $dh;
55 williamc 1.5 }
56 williamc 1.1 }