{
if(a_to.find(' ')!=std::string::npos) {
a_out << "inlib::clone :"
<< " can't have spaces in new name (" << inlib::sout(a_to) << ")."
<< std::endl;
return false;
}
std::string spwd;
if(!dir::pwd(spwd)) {
a_out << "inlib::clone :"
<< " can't get current directory."
<< std::endl;
return false;
}
dir::tree tree(a_out);
tree.set_path(a_dir);
if(!tree.build()) {
a_out << "inlib::clone :"
<< " can't get files of " << inlib::sout(a_dir)
<< "." << std::endl;
return false;
}
if(a_debug) {
dump_visitor visitor(a_out);
tree.visit(visitor);
}
clone_visitor visitor(a_out,spwd,a_dir,a_from,a_to,a_verbose);
tree.visit(visitor);
return visitor.is_success();
}