protected function calculateTotalSize(Node $node) { $size = $node['contentProperties']['size'] ?: 0; if ($node->isFolder() || $this->input->getOption('assets')) { foreach ($node->getChildren() as $child) { $size += $this->calculateTotalSize($child); } } return $size; }
/** * Transform a node into an array of file info arrays. * * @param Node $parent * @param array $output * @param $recursive * @param $prefix * @return array */ private function nodeToArray(Node $parent, array $output, $recursive, $prefix) { foreach ($parent->getChildren() as $node) { if ($node->inTrash()) { continue; } $entry = ['path' => $this->removePathPrefix(trim($prefix . '/' . $node['name'], '/')), 'basename' => $node['name'], 'type' => $node->isFolder() ? 'dir' : 'file', 'timestamp' => (new \DateTime($node['modifiedDate']))->getTimestamp()]; if (isset($node['contentProperties'])) { $entry = array_merge($entry, $node['contentProperties']); } $output[] = $entry; if ($node->isFolder() && $recursive) { $output = $this->nodeToArray($node, $output, $recursive, rtrim($prefix, '/') . '/' . $node['name']); } } return $output; }
protected function buildMarkdownTree(Node $node, $includeAssets = false, $prefix = '') { static $first; if (is_null($first)) { $first = false; if ($node->isFolder()) { $this->output->writeln("<blue>{$node['name']}</blue>"); } else { $this->output->writeln($node['name']); } } foreach ($node->getChildren() as $node) { $this->output->writeln("{$prefix}- {$node['name']}"); if ($node->isFolder() || $includeAssets === true) { $this->buildMarkdownTree($node, $includeAssets, "{$prefix} "); } } }