Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
 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;
     }
 }