From 62571b3971d57de74d4708701f2e67c9c211e995 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Tue, 24 Jan 2012 11:51:15 -0600 Subject: [PATCH] fix some problems on the CLI and allow specification of environment and database. --- laravel/cli/artisan.php | 39 ++++++++++++++++++++++++++ laravel/cli/dependencies.php | 8 +++--- laravel/cli/tasks/migrate/database.php | 1 + 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/laravel/cli/artisan.php b/laravel/cli/artisan.php index eef931a8..1683e395 100644 --- a/laravel/cli/artisan.php +++ b/laravel/cli/artisan.php @@ -2,6 +2,7 @@ use Laravel\IoC; use Laravel\Bundle; +use Laravel\Config; use Laravel\Database as DB; /** @@ -11,6 +12,44 @@ */ Bundle::start(DEFAULT_BUNDLE); +/** + * Set the CLI options on the $_SERVER global array so we can easily + * retrieve them from the various parts of the CLI code. We can use + * the Request class to access them conveniently. + */ +$_SERVER['cli'] = array(); + +foreach ($_SERVER['argv'] as $key => $value) +{ + if (starts_with($value, '--')) + { + $option = array_get($_SERVER['argv'], $key + 1, true); + + array_set($_SERVER, 'cli.'.substr($value, 2), $option); + } +} + +/** + * The Laravel environment may be specified on the CLI using the "env" + * option, allowing the developer to easily use local configuration + * files from the CLI since the environment is usually controlled + * by server environmenet variables. + */ +if (isset($_SERVER['cli']['env'])) +{ + $_SERVER['LARAVEL_ENV'] = $_SERVER['cli']['env']; +} + +/** + * The default database connection may be set by specifying a value + * for the "database" CLI option. This allows migrations to be run + * conveniently for a test or staging database. + */ +if (isset($_SERVER['cli']['db'])) +{ + Config::set('database.default', $_SERVER['cli']['db']); +} + /** * We will register all of the Laravel provided tasks inside the IoC * container so they can be resolved by the task class. This allows diff --git a/laravel/cli/dependencies.php b/laravel/cli/dependencies.php index 2e1cab05..ce57c823 100644 --- a/laravel/cli/dependencies.php +++ b/laravel/cli/dependencies.php @@ -1,4 +1,4 @@ -