comparison Lib/Deployment/Batch/CopyFile.pm @ 0:03e58a454b20

Создан репозитарий
author Sergey
date Tue, 14 Jul 2009 12:54:37 +0400
parents
children 16ada169ca75
comparison
equal deleted inserted replaced
-1:000000000000 0:03e58a454b20
1 use strict;
2 package Deployment::Batch;
3 our %Dirs;
4 package Deployment::Batch::CopyFile;
5 use base qw(Deployment::Batch::Generic);
6 use File::Copy;
7 require URI::file;
8 use Common;
9
10 BEGIN {
11 DeclareProperty Src => ACCESS_READ;
12 DeclareProperty Dst => ACCESS_READ;
13 }
14
15 sub CTOR {
16 my ($this,$src,$dest,$Dir) = @_;
17
18 $src or die "Source file name is required";
19 $dest or die "Destination file name is reqiured";
20
21 my $uriSrc = URI::file->new($src)->abs($this->Context->{PackageDir});
22
23 my $uriDest = URI::file->new($dest);
24
25 $uriDest = $uriDest->abs(
26 ($Dir and $Dirs{$Dir}) ?
27 $Dirs{$Dir} :
28 $this->Context->{PackageDir}
29 );
30
31 $this->{$Src} = $uriSrc->file;
32 $this->{$Dst} = $uriDest->file;
33 }
34
35 sub Run {
36 my ($this) = @_;
37
38 $this->Log("Copy '$this->{$Src}' to '$this->{$Dst}'");
39
40 Deployment::Batch->Backup( File => $this->{$Dst} );
41
42 copy($this->{$Src},$this->{$Dst}) or die "copy failed: $!";
43 }
44
45 1;