1: <?php
 2: /**
 3:  * Base class for Bake Tasks.
 4:  *
 5:  * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 6:  * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 7:  *
 8:  * Licensed under The MIT License
 9:  * For full copyright and license information, please see the LICENSE.txt
10:  * Redistributions of files must retain the above copyright notice.
11:  *
12:  * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
13:  * @link          http://cakephp.org CakePHP(tm) Project
14:  * @since         CakePHP(tm) v 1.3
15:  * @license       http://www.opensource.org/licenses/mit-license.php MIT License
16:  */
17: 
18: App::uses('AppShell', 'Console/Command');
19: 
20: /**
21:  * Base class for Bake Tasks.
22:  *
23:  * @package       Cake.Console.Command.Task
24:  */
25: class BakeTask extends AppShell {
26: 
27: /**
28:  * Name of plugin
29:  *
30:  * @var string
31:  */
32:     public $plugin = null;
33: 
34: /**
35:  * The db connection being used for baking
36:  *
37:  * @var string
38:  */
39:     public $connection = null;
40: 
41: /**
42:  * Flag for interactive mode
43:  *
44:  * @var boolean
45:  */
46:     public $interactive = false;
47: 
48: /**
49:  * Disable caching and enable debug for baking.
50:  * This forces the most current database schema to be used.
51:  *
52:  * @return void
53:  */
54:     public function startup() {
55:         Configure::write('debug', 2);
56:         Configure::write('Cache.disable', 1);
57:         parent::startup();
58:     }
59: 
60: /**
61:  * Gets the path for output. Checks the plugin property
62:  * and returns the correct path.
63:  *
64:  * @return string Path to output.
65:  */
66:     public function getPath() {
67:         $path = $this->path;
68:         if (isset($this->plugin)) {
69:             $path = $this->_pluginPath($this->plugin) . $this->name . DS;
70:         }
71:         return $path;
72:     }
73: 
74: /**
75:  * Base execute method parses some parameters and sets some properties on the bake tasks.
76:  * call when overriding execute()
77:  *
78:  * @return void
79:  */
80:     public function execute() {
81:         foreach ($this->args as $i => $arg) {
82:             if (strpos($arg, '.')) {
83:                 list($this->params['plugin'], $this->args[$i]) = pluginSplit($arg);
84:                 break;
85:             }
86:         }
87:         if (isset($this->params['plugin'])) {
88:             $this->plugin = $this->params['plugin'];
89:         }
90:     }
91: 
92: }
93: