diff --git a/lib/Cake/Console/cake.php b/lib/Cake/Console/cake.php index 28282e675..873c268e1 100644 --- a/lib/Cake/Console/cake.php +++ b/lib/Cake/Console/cake.php @@ -19,6 +19,25 @@ * @since CakePHP(tm) v 1.2.0.5012 * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ -require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ShellDispatcher.php'); +$ds = DIRECTORY_SEPARATOR; +$dispatcher = 'Cake' . $ds . 'Console' . $ds . 'ShellDispatcher.php'; +$found = false; +$paths = explode(PATH_SEPARATOR, ini_get('include_path')); + +foreach ($paths as $path) { + if (file_exists($path . $ds . $dispatcher)) { + $found = $path; + } +} + +if (!$found && function_exists('ini_set')) { + $root = dirname(dirname(dirname(__FILE__))); + ini_set('include_path', __CAKE_PATH__ . PATH_SEPARATOR . ini_get('include_path')); +} + +if (!include($dispatcher)) { + trigger_error('Could not locate CakePHP core files.', E_USER_ERROR); +} +unset($paths, $path, $found, $dispatcher, $root, $ds); return ShellDispatcher::run($argv);