diff --git a/lib/classes/module/console/fileEnsureProductionSetting.class.php b/lib/classes/module/console/fileEnsureProductionSetting.class.php index 90fd05bd21..ad20b484b9 100644 --- a/lib/classes/module/console/fileEnsureProductionSetting.class.php +++ b/lib/classes/module/console/fileEnsureProductionSetting.class.php @@ -44,6 +44,7 @@ class module_console_fileEnsureProductionSetting extends Command , 'checkOpcodeCacheService' ); protected $errors = 0; + protected $alerts = 0; public function __construct($name = null) { @@ -52,6 +53,7 @@ class module_console_fileEnsureProductionSetting extends Command $this->setDescription('Ensure production settings'); $this->addArgument('conf', InputArgument::OPTIONAL, 'The file to check', null); + $this->addOption('strict', 's', InputOption::VALUE_NONE, 'Wheter to fail on alerts or not'); return $this; } @@ -74,8 +76,23 @@ class module_console_fileEnsureProductionSetting extends Command $this->runTests($output); + $retval = $this->errors; + if ($input->getOption('strict')) + { + $retval += $this->alerts; + } + + if ($retval > 0) + { + $output->writeln("\nSome errors found in your conf"); + } + else + { + $output->writeln("\nYour production settings are setted correctly ! Enjoy"); + } $output->writeln('End'); - return 0; + + return $retval; } private function runTests(OutputInterface $output) @@ -112,15 +129,6 @@ class module_console_fileEnsureProductionSetting extends Command call_user_func(array($this, $test), $output); } - if ($this->errors) - { - $output->writeln("\nSome errors found in your conf"); - } - else - { - $output->writeln("\nYour production settings are setted correctly ! Enjoy"); - } - return $this->errors; } private function checkParse(OutputInterface $output) @@ -156,6 +164,7 @@ class module_console_fileEnsureProductionSetting extends Command else { $work_message = 'Cache server recommended'; + $this->alerts++; } } else @@ -185,6 +194,7 @@ class module_console_fileEnsureProductionSetting extends Command else { $work_message = 'Opcode recommended'; + $this->alerts++; } } else @@ -211,6 +221,7 @@ class module_console_fileEnsureProductionSetting extends Command switch ($conf) { default: + $this->alerts++; $this->printConf($output, $conf, $value, false, 'Not recognized'); break; case 'servername': @@ -226,6 +237,7 @@ class module_console_fileEnsureProductionSetting extends Command } elseif ($url == 'http://sub.domain.tld/') { + $this->alerts++; $message = "may be wrong"; } elseif (!filter_var($url, FILTER_VALIDATE_URL)) @@ -235,6 +247,7 @@ class module_console_fileEnsureProductionSetting extends Command } elseif ($parseUrl["scheme"] !== "https") { + $this->alerts++; $message = "should be https"; } else @@ -247,7 +260,14 @@ class module_console_fileEnsureProductionSetting extends Command case 'debug': case 'display_errors': $required = array_diff($required, array($conf)); - $message = $value ? 'Should be false' : 'OK'; + $message = 'OK'; + + if ($value !== false) + { + $message = 'Should be false'; + $this->errors++; + } + $this->printConf($output, $conf, $value, false, $message); break; case 'database': @@ -335,11 +355,17 @@ class module_console_fileEnsureProductionSetting extends Command switch ($conf) { default: + $this->alerts++; $this->printConf($output, $conf, $value, false, 'Not recognized'); break; case 'charset': $required = array_diff($required, array($conf)); - $message = $value == 'UTF8' ? 'OK' : 'Not recognized'; + $message = 'OK'; + if ($value !== 'UTF8') + { + $message = 'Not recognized'; + $this->alerts++; + } $this->printConf($output, $conf, $value, false, $message); break; case 'path': @@ -351,23 +377,50 @@ class module_console_fileEnsureProductionSetting extends Command case 'user': case 'host': $required = array_diff($required, array($conf)); - $message = is_scalar($value) ? 'OK' : 'Should be scalar'; + $message = 'OK'; + + if (!is_scalar($value)) + { + $message = 'Should be scalar'; + $this->errors++; + } + $this->printConf($output, $conf, $value, false, $message); break; case 'port': $required = array_diff($required, array($conf)); - $message = ctype_digit($value) ? 'OK' : 'Should be scalar'; + $message = 'OK'; + + if (!ctype_digit($value)) + { + $message = 'Should be ctype_digit'; + $this->errors++; + } + $this->printConf($output, $conf, $value, false, $message); break; case 'password': $required = array_diff($required, array($conf)); - $message = is_scalar($value) ? 'OK' : 'Should be scalar'; + $message = 'OK'; + + if (!is_scalar($value)) + { + $message = 'Should be scalar'; + $this->errors++; + } + $value = '***********'; $this->printConf($output, $conf, $value, false, $message); break; case 'driver': $required = array_diff($required, array($conf)); - $message = $value === 'pdo_mysql' ? 'OK' : 'MySQL recommended'; + $message = 'OK'; + + if ($value !== 'pdo_mysql') + { + $message = 'MySQL recommended'; + $this->errors++; + } $this->printConf($output, $conf, $value, false, $message); break; } @@ -442,10 +495,18 @@ class module_console_fileEnsureProductionSetting extends Command $this->printConf($output, $conf, $value, false, $message); break; case 'options': - $message = is_array($value) ? 'OK' : 'Should be array'; + $message = 'OK'; + + if (!is_array($value)) + { + $message = 'Should be array'; + $this->errors++; + } + $this->printConf($output, $conf, 'array()', false, $message); break; default: + $this->alerts++; $this->printConf($output, $conf, 'unknown', false, 'Not recognized'); break; } @@ -458,21 +519,43 @@ class module_console_fileEnsureProductionSetting extends Command case 'debug'; case 'strict_variables'; $required = array_diff($required, array($conf)); - $message = $value == false ? 'OK' : 'Should be false'; + $message = 'OK'; + + if ($value !== false) + { + $message = 'Should be false'; + $this->errors++; + } + $this->printConf($output, "\t" . $conf, $value, false, $message); break; case 'autoescape'; case 'optimizer'; $required = array_diff($required, array($conf)); - $message = $value == true ? 'OK' : 'Should be true'; + $message = 'OK'; + + if ($value !== true) + { + $message = 'Should be true'; + $this->errors++; + } + $this->printConf($output, "\t" . $conf, $value, false, $message); break; case 'charset'; $required = array_diff($required, array($conf)); - $message = $value == 'utf-8' ? 'OK' : 'Not recognized'; + $message = 'OK'; + + if ($value !== 'utf-8') + { + $message = 'Not recognized'; + $this->alerts++; + } + $this->printConf($output, "\t" . $conf, $value, false, $message); break; default: + $this->alerts++; $this->printConf($output, "\t" . $conf, $value, false, 'Not recognized'); break; } @@ -533,10 +616,18 @@ class module_console_fileEnsureProductionSetting extends Command $this->printConf($output, $conf, $value, false, $message); break; case 'options': - $message = is_array($value) ? 'OK' : 'Should be array'; + $message = 'OK'; + + if (!is_array($value)) + { + $message = 'Should be array'; + $this->errors++; + } + $this->printConf($output, $conf, 'array()', false, $message); break; default: + $this->alerts++; $this->printConf($output, $conf, 'unknown', false, 'Not recognized'); break; } @@ -548,12 +639,26 @@ class module_console_fileEnsureProductionSetting extends Command switch ($conf) { case 'log': - $message = $value == false ? 'OK' : 'Should be deactivated'; + $message = 'OK'; + + if ($value !== false) + { + $message = 'Should be deactivated'; + $this->errors++; + } + $this->printConf($output, $conf, $value, false, $message); break; case 'cache': $required = array_diff($required, array($conf)); - $message = is_array($value) ? 'OK' : 'Should be Array'; + $message = 'OK'; + + if (!is_array($value)) + { + $message = 'Should be Array'; + $this->errors++; + } + $this->printConf($output, $conf, 'array()', false, $message); $required_caches = array('query', 'result', 'metadata'); @@ -575,6 +680,7 @@ class module_console_fileEnsureProductionSetting extends Command } else { + $this->alerts++; if ($server) { $work_message = 'Cache server recommended'; @@ -598,6 +704,7 @@ class module_console_fileEnsureProductionSetting extends Command $this->verifyCacheOptions($output, $value_cache); break; default: + $this->alerts++; $this->printConf($output, "\t" . $key_cache, $value_cache, false, 'Not recognized'); break; } @@ -617,7 +724,14 @@ class module_console_fileEnsureProductionSetting extends Command break; case 'debug': $required = array_diff($required, array($conf)); - $message = $value == false ? 'OK' : 'Should be false'; + $message = 'OK'; + + if ($value !== false) + { + $message = 'Should be false'; + $this->errors++; + } + $this->printConf($output, $conf, $value, false, $message); break; case 'dbal': @@ -636,6 +750,7 @@ class module_console_fileEnsureProductionSetting extends Command $this->printConf($output, $conf, $value, false, $message); break; default: + $this->alerts++; $this->printConf($output, $conf, $value, false, 'Not recognized'); break; } @@ -684,15 +799,30 @@ class module_console_fileEnsureProductionSetting extends Command { case 'host'; $required_options = array_diff($required_options, array($conf)); - $message = is_scalar($value) ? 'OK' : 'Should be scalar'; + $message = 'OK'; + + if (!is_scalar($value)) + { + $message = 'Should be scalar'; + $this->errors++; + } + $this->printConf($output, "\t\t" . $conf, $value, false, $message); break; case 'port'; $required_options = array_diff($required_options, array($conf)); - $message = ctype_digit($value) ? 'OK' : 'Not recognized'; + $message = 'OK'; + + if (!ctype_digit($value)) + { + $message = 'Not recognized'; + $this->alerts++; + } + $this->printConf($output, "\t\t" . $conf, $value, false, $message); break; default: + $this->alerts++; $this->printConf($output, "\t\t" . $conf, $value, false, 'Not recognized'); break; }