Changeset 148
- Timestamp:
- 05/23/07 16:27:23 (3 years ago)
- Location:
- trunk
- Files:
-
- 3 modified
-
brackup-target (modified) (2 diffs)
-
lib/Brackup/Target.pm (modified) (1 diff)
-
lib/Brackup/Target/Filesystem.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/brackup-target
r147 r148 95 95 96 96 sub CMD_list_backups { 97 use Data::Dumper;98 97 foreach my $si ($target->backups) { 99 98 printf("%-35s %-20s %10d\n", … … 104 103 return 1; 105 104 } 106 105 106 sub CMD_get_backup { 107 my $name = shift @ARGV or 108 die "get_backup requires a filename to download"; 109 $target->get_backup($name); 110 } 111 112 sub CMD_get_backups { 113 foreach my $si ($target->backups) { 114 debug("Fetching " . $si->filename); 115 $target->get_backup($si->filename); 116 } 117 } 118 119 sub debug { 120 my $msg = shift; 121 return unless $opt_verbose; 122 warn "$msg\n"; 123 } 107 124 108 125 -
trunk/lib/Brackup/Target.pm
r145 r148 68 68 } 69 69 70 # downloads the given backup name to the current directory (with 71 # *.brackup extension) 72 sub get_backup { 73 my ($self, $name) = @_; 74 die "ERROR: get_backup method not implemented in sub-class $self"; 75 } 76 70 77 1; 71 78 -
trunk/lib/Brackup/Target/Filesystem.pm
r147 r148 123 123 my @ret = (); 124 124 while (my $fn = readdir($dh)) { 125 next unless $fn =~ /\.brackup$/;126 my $stat = File::stat::stat("$dir/$fn ");125 next unless $fn =~ s/\.brackup$//; 126 my $stat = File::stat::stat("$dir/$fn.brackup"); 127 127 push @ret, Brackup::TargetBackupStatInfo->new($self, $fn, 128 128 time => $stat->mtime, … … 131 131 closedir($dh); 132 132 return @ret; 133 } 134 135 # downloads the given backup name to the current directory (with 136 # *.brackup extension) 137 sub get_backup { 138 my ($self, $name) = @_; 139 my $dir = $self->_metafile_dir; 140 my $file = "$dir/$name.brackup"; 141 die "File doesn't exist: $file" unless -e $file; 142 open(my $in, $file) or die "Failed to open $file: $!\n"; 143 open(my $out, ">$name.brackup") or die "Failed to open $name.brackup: $!\n"; 144 my $buf; 145 my $rv; 146 while ($rv = sysread($in, $buf, 128*1024)) { 147 my $outv = syswrite($out, $buf); 148 die "copy error" unless $outv == $rv; 149 } 150 die "copy error" unless defined $rv; 151 return 1; 133 152 } 134 153
