"; } } public function end() { if(Director::is_cli()) { echo "\nTotal errors: {$this->errors}\n"; } else { echo ""; echo "

Total errors: {$this->errors}

"; } } public function showError($error) { $this->errors++; if(Director::is_cli()) { echo "\n$error"; } else { echo "
  • " . Convert::raw2xml($error) . "
  • "; } } /** * Validate all source files * * @param SS_HTTPRequest $request * @throws Exception */ public function run($request) { $this->start(); $registered = Config::inst()->get('DocumentationManifest', 'register_entities'); foreach ($registered as $details) { // validate the details provided through the YAML configuration $required = array('Path', 'Title'); // Check required configs foreach ($required as $require) { if (!isset($details[$require])) { $this->showError("$require is a required key in DocumentationManifest.register_entities"); } } // Check path is loaded $path = $this->getRealPath($details['Path']); if (!$path || !is_dir($path)) { $this->showError($details['Path'] . ' is not a valid documentation directory'); } } $this->end(); } public function getRealPath($path) { if (!Director::is_absolute($path)) { $path = Controller::join_links(BASE_PATH, $path); } return $path; } }