public function run() { if (!parent::run()) { return false; } if (empty($this->site_info->root_path) || $this->site_info->environment !== 'drupal') { throw new \Exception("Unable to determine the Drupal root directory. Make sure you are running this command inside a Drupal website's root directory."); } $env = new \GR\ServerEnv($this->site_info->root_path); $env->requireApacheConfFile(); $env->setEnvVars(); if (getenv("APP_ENV") === FALSE) { throw new \Exception("No APP_ENV environment variable is set for this site."); } if (getenv("APP_NAME") === FALSE) { throw new \Exception("No APP_NAME environment variable is set for this site."); } $args = implode(' ', $this->args); $command = "drush {$args}"; passthru($command); }
public static function get_database_credentials($root_path = NULL) { $root_path = isset($root_path) ? $root_path : getcwd(); $env = new \GR\ServerEnv($root_path); $env->setEnvVars($throw_exception = FALSE); include "{$root_path}/sites/default/settings.php"; $database_credentials = array(); if (isset($databases)) { // Drupal 7 $database_credentials = array('database' => $databases['default']['default']['database'], 'username' => $databases['default']['default']['username'], 'password' => $databases['default']['default']['password'], 'host' => $databases['default']['default']['host']); } elseif ($db_url) { // Drupal 6 $regex = "|^(.*?)://(.*?):(.*?)@(.*?)/(.*?)\$|"; $matches = array(); preg_match($regex, $db_url, $matches); if (!empty($matches)) { $database_credentials = array('database' => $matches[5], 'username' => $matches[2], 'password' => $matches[3], 'host' => $matches[4]); } } return $database_credentials; }
public function check_database_name() { if (isset($this->clobber) && $this->clobber) { return TRUE; } $db_name = strtolower($this->database_credentials['database']); $env = new \GR\ServerEnv($this->site_info->root_path); $env->setEnvVars($throw_exception = FALSE); if (strpos($db_name, 'prod') !== FALSE || getEnv('APP_ENV') === 'prod') { return FALSE; } if (strpos($db_name, 'stag') === FALSE && strpos($db_name, 'dev') === FALSE && strpos($db_name, 'local') === FALSE) { return 'CONFIRM'; } return TRUE; }