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, 2 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

# 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     #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 williamc 1.1 }