public function run($arguments) { if (!count($arguments)) { echo 'Moojon version: ' . MOOJON_VERSION . "\n"; } else { $arguments = self::check_arguments('moojon_cli::run()', 4, $arguments); $this->try_define('PROJECT_DIRECTORY', $_SERVER['PWD'] . '/' . $this->prompt_until($arguments[0], 'Please enter a project name') . '/'); $app = $this->prompt_until($arguments[1], 'Please enter an app name', moojon_config::get('default_app')); $controller = $this->prompt_until($arguments[2], 'Please enter a controller name', moojon_config::get('default_controller')); $action = $this->prompt_until($arguments[3], 'Please enter an action name', moojon_config::get('default_action')); moojon_files::attempt_mkdir(PROJECT_DIRECTORY); moojon_generator::project($app, $controller, $action); } }
public function run($arguments) { $command = $this->prompt_until_in(array_shift($arguments), $this->get_commands(), 'What would you like to generate?'); switch ($command) { case 'model': $tables = moojon_db::show_tables(); if (!count($tables)) { throw new moojon_exception('No tables to generate models from'); } $arguments = self::check_arguments('moojon_generate_cli::model()', 1, $arguments); $table = $this->prompt_until_in($arguments[0], $tables, 'What table would you like to generate a model for?'); moojon_generator::model($table); break; case 'models': $arguments = self::check_arguments('moojon_generate_cli::models()', 0, $arguments); moojon_generator::models(); break; case 'migration': $arguments = self::check_arguments('moojon_generate_cli::migration()', 1, $arguments); $migration = $this->prompt_until($arguments[0], 'Please enter a migration name'); moojon_generator::migration($migration); break; case 'app': $arguments = self::check_arguments('moojon_generate_cli::app()', 3, $arguments); $app = $this->prompt_until($arguments[0], 'Please enter an app name'); $controller = $this->prompt_until($arguments[1], 'Please enter an app name', moojon_config::get('default_controller')); $action = $this->prompt_until($arguments[2], 'Please enter an action name', moojon_config::get('default_action')); moojon_generator::app($app, $controller, $action); break; case 'controller': $arguments = self::check_arguments('moojon_generate_cli::controller()', 3, $arguments); $app = $this->prompt_for_app($arguments[0]); $controller = $this->prompt_until($arguments[1], 'Please enter a controller name'); $action = $this->prompt_until($arguments[2], 'Please enter an action name', 'index'); moojon_generator::controller($app, $controller, $action); break; case 'helper': $arguments = self::check_arguments('moojon_generate_cli::helper()', 1, $arguments); $helper = $this->prompt_until($arguments[0], 'Please enter a name for this helper'); moojon_generator::helper($helper); break; case 'layout': $arguments = self::check_arguments('moojon_generate_cli::layout()', 1, $arguments); $layout = $this->prompt_until($arguments[0], 'Please enter a layout name'); moojon_generator::layout($layout); break; case 'view': $arguments = self::check_arguments('moojon_generate_cli::view()', 3, $arguments); $app = $this->prompt_for_app($arguments[0]); $controller = $this->prompt_for_controller($app, $arguments[1]); $view = $this->prompt_until($arguments[2], 'Please enter a view name'); moojon_generator::view($app, $controller, $view); break; case 'partial': $arguments = self::check_arguments('moojon_generate_cli::partial()', 3, $arguments); $app = $this->prompt_for_app($arguments[0]); $controller = $this->prompt_for_controller($app, $arguments[1]); $partial = $this->prompt_until($arguments[2], 'Please enter a name for this partial'); moojon_generator::partial($app, $controller, $partial); break; case 'scaffold': $arguments = self::check_arguments('moojon_generate_cli::scaffold()', 3, $arguments); $app = $this->prompt_for_app($arguments[0]); $models = array(); foreach (moojon_files::directory_files(moojon_paths::get_project_models_directory()) as $path) { $models[] = basename($path); } if (!count($models)) { if ($this->prompt_until_in(null, array('y', 'n'), 'No models found. Would you like to generate models?') == 'y') { moojon_generator::models(); } else { throw new moojon_exception('Unable to generate scaffold (no models)'); } } $model = $this->prompt_until_in($arguments[1], moojon_db::show_tables(), 'What model would you like to generate a scaffold for?'); $controller = $this->prompt_until($arguments[2], 'Please enter a controller name', $model); moojon_generator::scaffold($app, $model, $controller); break; } }