Revision: | 1.6 |
Committed: | Fri May 11 08:49:52 2001 UTC (24 years ago) by sashby |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | V0_19_7, V0_19_6, V0_19_6p1, V0_19_5, SFATEST, V0_19_4, V0_19_4_pre3, V0_19_4_pre2, V0_19_4_pre1, V0_19_3, V0_19_2, V0_19_1, V0_19_0, V0_18_5, V0_18_4, V_18_3_TEST, VO_18_3, V0_18_2 |
Branch point for: | SCRAM_V1_BRANCH, V0_19_4_B |
Changes since 1.5: | +34 -24 lines |
Log Message: | Fixed problem with undefined directory handle in copydir routine |
# | 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 | sashby | 1.6 | sub copydir |
32 | { | ||
33 | my $src=shift; | ||
34 | my $dest=shift; | ||
35 | |||
36 | use DirHandle; | ||
37 | use File::Copy; | ||
38 | |||
39 | # print "Copying $src to $dest\n"; | ||
40 | adddir($dest); | ||
41 | my $dh=DirHandle->new($src); | ||
42 | |||
43 | if (defined $dh) | ||
44 | { | ||
45 | my @allfiles=$dh->read(); | ||
46 | |||
47 | my $file; | ||
48 | foreach $file ( @allfiles ) | ||
49 | { | ||
50 | williamc | 1.4 | next if $file=~/^\.\.?/; |
51 | sashby | 1.6 | if ( -d $src."/".$file ) |
52 | { | ||
53 | copydir($src."/".$file,$dest."/".$file); | ||
54 | } | ||
55 | else | ||
56 | { | ||
57 | copy($src."/".$file,$dest."/".$file); | ||
58 | } | ||
59 | williamc | 1.4 | } |
60 | sashby | 1.6 | undef $dh; |
61 | } | ||
62 | else | ||
63 | { | ||
64 | die "Attempt to open a non-existent directory ($src). Exitting\n"; | ||
65 | } | ||
66 | } |