Annotation of wpscripts/ezreturn/fs.pm, Revision 1.1.1.1
1.1 yason 1: package fs;
2:
3: use index;
4:
5: # total returned files
6: our $NRETURNED = 0;
7:
8: sub copy($$$$)
9: {
10: my $ID_ref = shift;
11: my $file_type_ref = shift;
12: my $file_name_ref = shift;
13: my $file_retpath_ref = shift;
14:
15: my @ID = @$ID_ref;
16: my @file_type = @$file_type_ref;
17: my @file_name = @$file_name_ref;
18: my @file_retpath = @$file_retpath_ref;
19:
20: my $i;
21: my $bfilepath;
22: my $bfilebasename;
23: my $retval;
24:
25: my $oldsize;
26: my $newsize;
27:
28: print "[fs::copy] entering with " . scalar(@file_type) . " ab_want files\n";
29:
30: # TODO
31:
32: # iterate over all given files
33: for($i = 0; $i < scalar(@file_type); $i++) {
34:
35: $bfilepath = index::lookup($file_type[$i], $file_name[$i]);
36:
37: if ($bfilepath eq "") {
38: # requested file not found in backups
39: # XXX notify via email ?
40: print "[fs::copy] $file_name[$i] of type $file_type[$i] not found in backups\n";
41:
42: # XXX unwant file in db, maybe unneccessary?
43: dbops::unwant($file_type[$i], $ID[$i]);
44:
45: next;
46: # NOTREACHED
47: }
48:
49: # here it is safe to do basename
50: $bfilebasename = `basename $bfilepath`;
51: chomp($bfilebasename);
52:
53: print "[fs::copy] initiating copy $bfilepath to $file_retpath[$i]/$bfilebasename\n";
54:
55: # execute system command
56: system("cp $bfilepath $file_retpath[$i]");
57:
58: if ($? != 0) {
59: # cp failed
60: print "[fs::copy] copy failed (retval=$?)\n";
61:
62: # process next element
63: next;
64: }
65:
66: # check sizes
67: if (-s $bfilepath == -s "$file_retpath[$i]/$bfilebasename") {
68:
69: print "[fs::copy] copy completed, sizes matched\n";
70:
71: $NRETURNED++;
72:
73: # update database
74: print "file_type=$file_type[$i] ID=$ID[$i]\n";
75: dbops::unwant($file_type[$i], $ID[$i]);
76:
77: }
78: else {
79: # sized did not matched
80:
81: print "[fs::copy] copy completed, but sizes DID NOT MATCHED\n";
82: print "[fs::copy] will NOT update database\n";
83:
84: }
85:
86: # next file
87: next;
88: }
89:
90:
91: print "[fs::copy] leaving (copied $NRETURNED files)\n";
92: }
93:
94: return 1;
95:
CVSweb