view Lib/Deployment/Batch/CopyFile.pm @ 148:e6447ad85cb4

DOM objects now have a schema and schemaSource properties RegExp now can launder data Improved post to DOM transformation (multiple values a now supported) Added new axes to navigation queries: ancestor and descendant minor changes and bug fixes
author wizard
date Mon, 16 Aug 2010 08:26:44 +0400
parents 16ada169ca75
children 76515373dac0
line wrap: on
line source

use strict;
package Deployment::Batch;
our %Dirs;
package Deployment::Batch::CopyFile;
use base qw(Deployment::Batch::Generic);
use File::Copy;
require URI::file;
use Common;

BEGIN {
    DeclareProperty Src => ACCESS_READ;
    DeclareProperty Dst => ACCESS_READ;
}

sub CTOR {
    my ($this,$src,$dest,$Dir) = @_;

    $src or die "Source file name is required";
    $dest or die "Destination file name is reqiured";
                       
    my $uriSrc = URI::file->new($src)->abs($this->Context->{PackageDir});

    my $uriDest = URI::file->new($dest);
    
    $uriDest = $uriDest->abs(
        ($Dir and $Dirs{$Dir}) ?
            $Dirs{$Dir} :
            $this->Context->{PackageDir}
    );

    $this->{$Src} = $uriSrc->file;
    $this->{$Dst} = $uriDest->file;
}

sub Run {
    my ($this) = @_;

    $this->Log("Copy '$this->{$Src}' to '$this->{$Dst}'");

    Deployment::Batch->Backup( File => $this->{$Dst} );
    
    copy($this->{$Src},$this->{$Dst}) or die "copy failed: $!";
}

1;