/** * Builds an output document * @param tfProgram $prg */ public function build(tfProgram $prg) { if (!isset($this->args['#path'])) { return $this->main($prg); } $prg->loadLibrary('parsers'); $prg->loadLibrary('output'); $prg->loadLibrary('project'); $prg->loadLibrary('i18n'); $prg->loadLibrary('tags'); $project = new tfProject($this->args['#path']); tfProject::set($project); // Choose the language if (isset($this->args['-l'])) { $project->setLanguage($this->args['-l']); } else { $project->setLanguage($project->config['baseLanguage']); } tfTags::setProject($project); try { if (isset($this->args['-o'])) { $prg->console->stdout->writeln('Processing the files.'); $project->loadItems(); $prg->console->stdout->writeln('Starting ' . $this->args['-o'] . '.'); $project->setOutput($this->args['-o']); $project->generate(); $prg->console->stdout->writeln('Generation completed.'); } else { $prg->console->stdout->writeln('Processing the files.'); $project->loadItems(); foreach ($project->config['outputs'] as $out) { $prg->console->stdout->writeln('Starting ' . $out . '.'); $project->setOutput($out); $project->generate(); } $prg->console->stdout->writeln('Generation completed.'); } } catch (Exception $e) { $prg->console->stderr->writeln($e->getMessage()); } }