X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FNode.cc;h=69e1bfb243da359cd7ba2c2575297981d58e9c9b;hb=1d95912e59f822e19e4972727fa2fa6db6b2bf63;hp=5a043179c6ad243ee4838617e4e5fd16a3525a53;hpb=13d1ffe0c19d3085f1cf28f1a1c53d96572c0abe;p=senf.git diff --git a/Utils/Console/Node.cc b/Utils/Console/Node.cc index 5a04317..69e1bfb 100644 --- a/Utils/Console/Node.cc +++ b/Utils/Console/Node.cc @@ -39,6 +39,31 @@ prefix_ senf::console::DirectoryNode & senf::console::root() return *rootNode; } +namespace { + void dodump(std::ostream & output, unsigned level, senf::console::DirectoryNode & node) + { + std::string pad (2*level, ' '); + senf::console::DirectoryNode::child_iterator i (node.children().begin()); + senf::console::DirectoryNode::child_iterator const i_end (node.children().end()); + for (; i != i_end; ++i) { + output << pad << i->first; + if (i->second->isDirectory()) { + output << "/\n"; + dodump(output, level+1,static_cast(*i->second)); + } + else if (i->second->isLink()) + output << "@ -> " << i->second->followLink().path() << '\n'; + else + output << '\n'; + } + } +} + +prefix_ void senf::console::dump(std::ostream & os, DirectoryNode & dir) +{ + dodump(os,0,dir); +} + /////////////////////////////////////////////////////////////////////////// // senf::console::GenericNode