ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/Utilities/AddDir.pm
(Generate patch)

Comparing COMP/SCRAM/src/Utilities/AddDir.pm (file contents):
Revision 1.4 by williamc, Mon Feb 14 12:10:36 2000 UTC vs.
Revision 1.8 by sashby, Wed Feb 2 11:10:18 2005 UTC

# Line 28 | Line 28 | sub adddir {
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 ) {
31 > sub copydir
32 >   {
33 >   my $src=shift;
34 >   my $dest=shift;
35 >  
36 >   use DirHandle;
37 >   use File::Copy;
38 >  
39 >   adddir($dest);
40 >   my $dh=DirHandle->new($src);
41 >  
42 >   if (defined $dh)
43 >      {
44 >      my @allfiles=$dh->read();
45 >  
46 >      my $file;
47 >      foreach $file ( @allfiles )
48 >         {
49           next if $file=~/^\.\.?/;
50 <         if ( -d $src."/".$file ) {
51 <           copydir($src."/".$file,$dest."/".$file);
50 >         if ( -d $src."/".$file )
51 >            {
52 >            copydir($src."/".$file,$dest."/".$file);
53 >            }
54 >         else
55 >            {
56 >            copy($src."/".$file,$dest."/".$file);
57 >            if ( -x $src."/".$file || -X $src."/".$file ) {chmod(0775,$dest."/".$file);}
58 >            }
59           }
60 <         else {
61 <           copy($src."/".$file,$dest."/".$file)
60 >      undef $dh;
61 >      }
62 >   else
63 >      {
64 >      die "Attempt to open a non-existent directory ($src). Exitting\n";
65 >      }
66 >   }
67 >
68 > sub copydirwithskip
69 >   {
70 >   my $src=shift;
71 >   my $dest=shift;
72 >   my ($filetoskip)=@_;
73 >  
74 >   use DirHandle;
75 >   use File::Copy;
76 >  
77 >   adddir($dest);
78 >  
79 >   my $dh=DirHandle->new($src);
80 >  
81 >   if (defined $dh)
82 >      {
83 >      my @allfiles=$dh->read();
84 >  
85 >      my $file;
86 >      foreach $file ( @allfiles )
87 >         {
88 >         next if $file=~/^\.\.?/;
89 >         # Skip backup files and x~ files:
90 >         next if $file =~ /.*bak$/;
91 >         next if $file =~ /.*~$/;
92 >
93 >         if ($file eq $filetoskip)
94 >            {
95 >            next;
96 >            }
97 >        
98 >         if ( -d $src."/".$file )
99 >            {
100 >            copydir($src."/".$file,$dest."/".$file);
101 >            }
102 >         else
103 >            {
104 >            copy($src."/".$file,$dest."/".$file);
105 >            if ( -x $src."/".$file || -X $src."/".$file ) {chmod(0775,$dest."/".$file);}
106 >            }
107           }
108 <        }
109 <        undef $dh;
110 < }
108 >      undef $dh;
109 >      }
110 >   else
111 >      {
112 >      die "Attempt to open a non-existent directory ($src). Exitting\n";
113 >      }
114 >   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines