| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | <?php/** * Implementation of hook_drush_command(). */function prod_check_drush_command() {  $items = array();  $items['prod-check'] = array(    'callback' => 'drush_prod_check_status',    'description' => 'Display the Production Check status page.',    'aliases' => array('pchk'),  );  $items['prod-check-prodmode'] = array(    'callback' => 'drush_prod_check_prod_mode',    'description' => 'Switch the site to production mode.',    'options' => array(      'config' => 'Ask for additional options before switching to production mode.',    ),    'aliases' => array('pchk-pmode'),  );  return $items;}/** * Status page callback */function drush_prod_check_status() {  // Map error codes to shell colours.  $severity = array (    PROD_CHECK_REQUIREMENT_INFO => '1',    PROD_CHECK_REQUIREMENT_OK => '1;32',    PROD_CHECK_REQUIREMENT_WARNING => '1;33',    PROD_CHECK_REQUIREMENT_ERROR => '1;31',  );  $error = 0;  $functions = _prod_check_functions();  // Not needed here.  unset($functions['prod_mon']);  unset($functions['perf_data']);  foreach ($functions as $set => $data) {    $rows[] = array('');    $rows[] = array("\033[1m".dt($data['title'])."\033[0m");    foreach ($data['functions'] as $function => $title) {      $result = call_user_func($function);      $func = ltrim($function, '_');      if (is_array($result) && !empty($result)) {        $rows[] = array(          $result[$func]['title'],          "\033[".$severity[$result[$func]['severity']].'m'.strip_tags($result[$func]['value'])."\033[0m",        );        if ($error < $result[$func]['severity']) {          $error = $result[$func]['severity'];        }      }    }  }  drush_print("\033[1m".dt('Production Check status')."\033[0m", 1);  drush_print_table($rows);  if ($error > 0) {    // Would be cool if we could prefix the admin path with http://<host>/ so it    // will become a clickable link in some terminals. Any ideas?    drush_print("\033[1m".dt('Some errors were reported!')."\033[0m ".dt('Check the full status page on')." \033[1m".'admin/reports/prod-check'."\033[0m ".dt('for details.'));  }}/** * Switch to production mode. */function drush_prod_check_prod_mode() {  $options = array();  // Ask extra input when the --config option is used.  if (drush_get_option('config', FALSE)) {    $options['site_mail'] = drush_prompt(dt('Site e-mail address'));    if (module_exists('webform')) {      $options['webform_default_from_address'] = drush_prompt(dt('Webform default from e-mail address'));    }    if (module_exists('googleanalytics')) {      $options['googleanalytics_account'] = drush_prompt(dt('Google Analytics Web Property ID'));    }    $options['block_cache'] = drush_confirm(dt('Enable Block cache'));    if (module_exists('dblog')) {      $options['dblog'] = drush_confirm(dt('Disable Database logging'));    }    $options['nagios'] = drush_confirm(dt('Enable Nagios monitoring contrib module'));  }  // Adjust settings.  module_load_include('inc', 'prod_check', 'includes/prod_check.admin');  $variables = prod_check_prod_mode_settings($options);  drush_print(dt('The following settings have been changed: !variables.', array('!variables' => implode(', ', array_keys($variables)))));  // Enable / disable modules.  $modules = prod_check_prod_mode_modules($options);  if (!empty($modules['disable'])) {    drush_print(dt('The following modules have been disabled: !modules.', array('!modules' => implode(', ', $modules['disable']))));  }  if (!empty($modules['enable'])) {    drush_print(dt('The following modules have been enabled: !modules.', array('!modules' => implode(', ', $modules['enable']))));  }}
 |