/** * Runs the CLI process * * @param array $args CLI arguments * * @return mixed */ public function run(array $args) { Index::info('Usage: `cradle package <vendor/package> <command>` - Runs a package event'); Index::info('Usage: `cradle <vendor/package> <command>` - Runs a package event'); Index::info('Usage: `cradle event <event name> <json|query>` - Runs an event'); Index::info('Usage: `cradle <event name> <json|query>` - Runs an event'); }
/** * Runs the CLI process * * @param array $args CLI arguments * * @return mixed */ public function run(array $args) { Index::info('Help Menu'); Index::info('- `eve generate <schema*> <namespace>` Generates files based on schema'); Index::info('- `eve database <schema*>` Generates database table/s schema'); Index::info('- `eve install` Generates default framework files'); Index::info('- `eve job <name*> <data*>` Executes a job'); Index::info('- `eve queue <name*> <data*>` Queues a job'); die(0); }
/** * Runs the CLI Generate process * * @param array $args CLI arguments * * @return void */ public function run($args) { $this->setup($args); //normalize the schema $this->fixSchema(); Index::info('Creating database table.'); $this->createTable(); Index::success('`' . $this->schema['name'] . '` has been successfully created.'); $this->createRelations(); foreach ($this->schema['relations'] as $table => $many) { Index::success('`' . $this->schema['name'] . '_' . $table . '` has been successfully created.'); } if (!isset($this->schema['fixture']) || !is_array($this->schema['fixture'])) { return; } Index::info('Fixtures found. Installing'); $this->insertFixtures(); Index::success('Fixtures has been successfully inserted.'); die(0); }
/** * Copy the contents from to * * @return Eve\Framework\Cli\Generate */ public function copy($source, $destination) { $contents = $this('file', $source)->getContent(); $template = $this->engine->compile($contents); $code = $template($this->schema); $code = str_replace('\\\\', '\\', $code); $code = str_replace('\\}', '}', $code); $code = str_replace('\\{', '{', $code); $code = str_replace('{ ', '{', $code); $code = preg_replace('/\\n\\s*\\n\\s*\\n/', "\n\n", $code); Index::info('Installing to' . $destination); $this('file', $destination)->setContent($code); return $this; }
/** * Runs the CLI Install process * * @param array $args CLI arguments * * @return void */ public function run($args) { $this->setup($args); Index::info('Downloading files..'); $this('curl')->setUrl('https://github.com/Eve-PHP/Shade/archive/master.zip')->setFile($this->file)->setFollowLocation(true)->setSslVerifyPeer(false)->send(); fclose($this->file); Index::info('Extracting files..'); try { $zip = new \ZipArchive(); $resource = $zip->open($this->cwd . '/tmp/framework.zip'); if (!$resource) { throw new \Exception('Cannot extract data. Aborting.'); } $zip->extractTo($this->cwd . '/tmp'); $zip->close(); Index::info('Copying files..'); $root = $this->cwd . '/tmp/Shade-master'; $files = $this('folder', $root)->getFiles(null, true); foreach ($files as $file) { $destination = str_replace('/tmp/Shade-master', '', $file->get()); $folder = $this('file', $destination)->getFolder(); if (!is_dir($folder)) { mkdir($folder, 0777, true); } copy($file->get(), $destination); } } catch (\Exception $e) { Index::error($e->getMessage(), false); } Index::info('Cleaning up ..'); $tmp = $this('folder', $this->cwd . '/tmp'); $files = $tmp->getFiles(null, true); $folders = $tmp->getFolders(null, true); $folders = array_reverse($folders); foreach ($files as $file) { $file->remove(); } foreach ($folders as $folder) { $folder->remove(); } $tmp->remove(); Index::info('Copying settings..'); $this('file', $this->cwd . '/settings/databases.php')->setData($this->databases); copy($this->cwd . '/settings/sample.config.php', $this->cwd . '/settings/config.php'); copy($this->cwd . '/settings/sample.test.php', $this->cwd . '/settings/test.php'); Index::info('Creating database..'); $this->install(); Index::success('Database created.'); Index::warning('Please set the configs in the settings folder'); Index::system('Control Login is: admin@openovate.com / admin'); Index::success('Framework installation complete!'); die(0); }