X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcopy.cpp;h=1f764dc038045575bb526c44939fcad4ac72add5;hb=4c1d94fb9b70157f9c44b7feaf29ec585ae29276;hp=c9cb3112ac25465d81ddf3a098eacbb5e46003ed;hpb=291455f435a4319ce3460e2e47d8f036222a3f92;p=builder.git diff --git a/source/copy.cpp b/source/copy.cpp index c9cb311..1f764dc 100644 --- a/source/copy.cpp +++ b/source/copy.cpp @@ -12,27 +12,40 @@ Copy::Copy(Builder &b, const Package &pkg, const Path::Path &s, const Path::Path Action(b), src(s), dest(d), - worker(*this) + worker(0) { - announce(pkg.get_name(), "INST", dest[-1]); + announce(pkg.get_name(), "COPY", dest[-1]); if(builder.get_verbose()>=2) cout< "<get_done()) { signal_done.emit(); - worker.join(); - return worker.get_error()?1:0; + worker->join(); + return worker->get_error()?1:0; } + return -1; } +Copy::~Copy() +{ + delete worker; +} + void Copy::Worker::main() { - Path::mkpath(copy.src.subpath(0, copy.src.size()-1), 0755); + Path::mkpath(copy.dest.subpath(0, copy.dest.size()-1), 0755); + if(unlink(copy.dest.str().c_str())<0 && errno!=ENOENT) { int err=errno;