inlib  1.2.0
Classes | Functions
inlib::cloner Namespace Reference

Classes

class  dump_visitor
class  clone_visitor

Functions

bool clone (const std::string &a_dir, const std::string &a_from, const std::string &a_to, std::ostream &a_out, bool a_verbose=false, bool a_debug=false)

Function Documentation

bool inlib::cloner::clone ( const std::string &  a_dir,
const std::string &  a_from,
const std::string &  a_to,
std::ostream &  a_out,
bool  a_verbose = false,
bool  a_debug = false 
) [inline]

Definition at line 143 of file cloner.

 {
  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();
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines