public function run() { if (!file_exists($this->pipefile)) { throw new NoJobqueueStarted(); } if ($this->config->stop === true) { display('Stopping queue'); $queuePipe = fopen($this->pipefile, 'w'); fwrite($queuePipe, "quit\n"); fclose($queuePipe); return; } if ($this->config->ping === true) { display('Ping queue'); $queuePipe = fopen($this->pipefile, 'w'); fwrite($queuePipe, "ping\n"); fclose($queuePipe); return; } if ($this->config->project != 'default') { if (file_exists($this->config->projects_root . '/projects/' . $this->config->project . '/report/')) { display('Cleaning the project first'); $clean = new Clean($this->gremlin, $this->config); $clean->run(); } display('Adding project ' . $this->config->project . ' to the queue'); $queuePipe = fopen($this->pipefile, 'w'); fwrite($queuePipe, $this->config->project . "\n"); fclose($queuePipe); } elseif (!empty($this->config->filename)) { if (!file_exists($this->config->projects_root . '/in/' . $this->config->filename . '.php')) { throw new \Exakat\Exceptions\NoSuchFile('No such file "' . $this->config->filename . '" in /in/ folder'); } if (file_exists($this->config->projects_root . '/out/' . $this->config->filename . '.json')) { throw new \Exakat\Exceptions\ReportAlreadyDone($this->config->filename); } display('Adding file ' . $this->config->project . ' to the queue'); $queuePipe = fopen($this->pipefile, 'w'); fwrite($queuePipe, $this->config->filename . "\n"); fclose($queuePipe); } display('Done'); }
public function execute(Config $config) { switch ($config->command) { case 'doctor': $doctor = new Tasks\Doctor($this->gremlin, $this->config); $doctor->run($config); break; case 'init': $task = new Tasks\Initproject($this->gremlin, $this->config); $task->run($config); break; case 'anonymize': $task = new Tasks\Anonymize($this->gremlin, $this->config); $task->run($config); break; case 'files': $task = new Tasks\Files($this->gremlin, $this->config); $task->run($config); break; case 'load': $task = new Tasks\Load($this->gremlin, $this->config); $task->run($config); break; case 'stat': $task = new Tasks\Stat($this->gremlin, $this->config); $task->run($config); break; case 'analyze': $task = new Tasks\Analyze($this->gremlin, $this->config); $task->run($config); break; case 'results': $task = new Tasks\Results($this->gremlin, $this->config); $task->run($config); break; case 'export': $task = new Tasks\Export($this->gremlin, $this->config); $task->run($config); break; case 'report': $task = new Tasks\Report2($this->gremlin, $this->config); $task->run($config); break; case 'project': $task = new Tasks\Project($this->gremlin, $this->config); $task->run($config); break; case 'magicnumber': $task = new Tasks\Magicnumber($this->gremlin, $this->config); $task->run($config); break; case 'clean': $task = new Tasks\Clean($this->gremlin, $this->config); $task->run($config); break; case 'status': $task = new Tasks\Status($this->gremlin, $this->config); $task->run($config); break; case 'help': $task = new Tasks\Help($this->gremlin, $this->config); $task->run($config); break; case 'cleandb': $task = new Tasks\CleanDb($this->gremlin, $this->config); $task->run($config); break; case 'onepage': $task = new Tasks\OnePage($this->gremlin, $this->config); $task->run($config); break; case 'update': $task = new Tasks\Update($this->gremlin, $this->config); $task->run($config); break; case 'onepagereport': $task = new Tasks\OnepageReport($this->gremlin, $this->config); $task->run($config); break; case 'phploc': $task = new Tasks\Phploc($this->gremlin, $this->config); $task->run($config); break; case 'findextlib': $task = new Tasks\FindExternalLibraries($this->gremlin, $this->config); $task->run($config); break; case 'dump': $task = new Tasks\Dump($this->gremlin, $this->config); $task->run($config); break; case 'jobqueue': $task = new Tasks\Jobqueue($this->gremlin, $this->config); $task->run($config); break; case 'queue': $task = new Tasks\Queue($this->gremlin, $this->config); $task->run($config); break; case 'test': $task = new Tasks\Test($this->gremlin, $this->config); $task->run($config); break; case 'remove': $task = new Tasks\Remove($this->gremlin, $this->config); $task->run($config); break; case 'server': $task = new Tasks\Server($this->gremlin, $this->config); $task->run($config); break; case 'upgrade': $task = new Tasks\Upgrade($this->gremlin, $this->config); $task->run($config); break; case 'version': default: $version = self::VERSION; $build = self::BUILD; $date = date('r', filemtime(__FILE__)); echo "\n ________ __ _ \n|_ __ | [ | _ / |_ \n | |_ \\_| _ __ ,--. | | / ] ,--. `| |-' \n | _| _ [ \\ [ ]`'_\\ : | '' < `'_\\ : | | \n _| |__/ | > ' < // | |, | |`\\ \\ // | |,| |, \n|________|[__]`\\_]\\'-;__/[__| \\_]\\'-;__/\\__/ \n \n\nExakat : @ 2014-2016 Damien Seguy. \nVersion : ", $version, ' - Build ', $build, ' - ', $date, "\n"; break; } }