Dackup

 view release on metacpan or  search on metacpan

lib/Dackup/Target/CloudFiles.pm  view on Meta::CPAN

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
sub name {
    my ( $self, $entry ) = @_;
    return
          'cloudfiles://'
        . $self->container->name . '/'
        . $self->prefix
        . $entry->key;
}
 
sub update {
    my ( $self, $source, $entry ) = @_;
    my $container   = $self->container;
    my $prefix      = $self->prefix;
    my $source_type = ref($source);
    my $object      = $self->object($entry);
 
    if ( $source_type eq 'Dackup::Target::Filesystem' ) {
        $object->put_filename( $source->filename($entry) );
    } elsif ( $source_type eq 'Dackup::Target::S3' ) {
        my $filename      = tmpnam();

lib/Dackup/Target/Filesystem.pm  view on Meta::CPAN

69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
sub filename {
    my ( $self, $entry ) = @_;
    return file( $self->prefix, $entry->key );
}
 
sub name {
    my ( $self, $entry ) = @_;
    return 'file://' . file( $self->prefix, $entry->key );
}
 
sub update {
    my ( $self, $source, $entry ) = @_;
    my $source_type          = ref($source);
    my $destination_filename = $self->filename($entry);
    $destination_filename->parent->mkpath;
 
    if ( $source_type eq 'Dackup::Target::Filesystem' ) {
        my $source_filename = $source->filename($entry);
        copy( $source_filename->stringify, $destination_filename->stringify )
            || confess(
            "Error copying $source_filename to $destination_filename: $!");

lib/Dackup/Target/S3.pm  view on Meta::CPAN

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
        etag => $entry->md5_hex,
        size => $entry->size,
    );
}
 
sub name {
    my ( $self, $entry ) = @_;
    return 's3://' . $self->bucket->name . '/' . $self->prefix . $entry->key;
}
 
sub update {
    my ( $self, $source, $entry ) = @_;
    my $source_type = ref($source);
    my $object      = $self->object($entry);
    if ( $source_type eq 'Dackup::Target::Filesystem' ) {
        $object->put_filename( $source->filename($entry) );
    } else {
        confess "Do not know how to update from $source_type";
    }
}

lib/Dackup/Target/SSH.pm  view on Meta::CPAN

205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
sub name {
    my ( $self, $entry ) = @_;
    my $ssh = $self->ssh;
    return
          'ssh://'
        . $ssh->{_user} . '@'
        . $ssh->{_host}
        . file( $self->prefix, $entry->key );
}
 
sub update {
    my ( $self, $source, $entry ) = @_;
    my $ssh                   = $self->ssh;
    my $source_type           = ref($source);
    my $destination_filename  = $self->filename($entry);
    my $destination_directory = $destination_filename->parent;
    my $directories           = $self->directories;
 
    if ( $source_type eq 'Dackup::Target::Filesystem' ) {
        my $source_filename = $source->filename($entry);



( run in 0.253 second using v1.01-cache-2.11-cpan-0f795438458 )