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;
}