Skip to content

Commit

Permalink
Make baking a plugin more user friendly.
Browse files Browse the repository at this point in the history
Changed the text when the plugin already exists to indicate that the task stops
intentionally.

If there are folder errors - report them in the cli.

Choose the last plugin path by default

Modify the app's bootstrap file if it's not being (obviously) loaded already.
This means it is now possible to do:

    Console/cake bake plugin MyPlugin
    Console/cake bake model MyPlugin.MyModel

Previously the above would result in an error (which only if you know), you'd
fix by editing your Config/bootstrap.php file by hand before retrying to bake
your model.
  • Loading branch information
AD7six committed Jun 7, 2012
1 parent f3464b0 commit 488ba9e
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions lib/Cake/Console/Command/Task/PluginTask.php
Expand Up @@ -53,8 +53,9 @@ public function execute() {
$plugin = Inflector::camelize($this->args[0]);
$pluginPath = $this->_pluginPath($plugin);
if (is_dir($pluginPath)) {
$this->out(__d('cake_console', 'Plugin: %s', $plugin));
$this->out(__d('cake_console', 'Plugin: %s already exists, no action taken', $plugin));
$this->out(__d('cake_console', 'Path: %s', $pluginPath));
return false;
} else {
$this->_interactive($plugin);
}
Expand Down Expand Up @@ -127,6 +128,9 @@ public function bake($plugin) {

$errors = $Folder->errors();
if (!empty($errors)) {
foreach ($errors as $message) {
$this->error($message);
}
return false;
}

Expand All @@ -144,8 +148,17 @@ public function bake($plugin) {
$out .= "}\n\n";
$this->createFile($this->path . $plugin . DS . 'Model' . DS . $modelFileName, $out);

$bootstrap = new File(APP . 'Config' . DS . 'bootstrap.php', false);
$contents = $bootstrap->read();
if (!preg_match("@\n\s*CakePlugin::loadAll@", $contents)) {
$bootstrap->append("CakePlugin::load('$plugin', array('bootstrap' => false, 'routes' => false));");
$this->out('', 1, Shell::VERBOSE);
$this->out(__d('cake_dev', '%s modified', APP . 'Config' . DS . 'bootstrap.php', 1, Shell::VERBOSE));
}

$this->hr();
$this->out(__d('cake_console', '<success>Created:</success> %s in %s', $plugin, $this->path . $plugin), 2);

}

return true;
Expand All @@ -170,7 +183,7 @@ public function findPath($pathOptions) {
$this->out($i + 1 . '. ' . $option);
}
$prompt = __d('cake_console', 'Choose a plugin path from the paths above.');
$choice = $this->in($prompt);
$choice = $this->in($prompt, null, 1);
if (intval($choice) > 0 && intval($choice) <= $max) {
$valid = true;
}
Expand Down

0 comments on commit 488ba9e

Please sign in to comment.