Annotation of wpscripts/ezreturn/fs.pm, Revision 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