mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 06:42:42 +01:00
Configuration - re-jigger how we handle bad configuration files
Summary: just explicitly check if the file doesn't exist *first*, and then do the standard include thing with the more generic error if that doesn't work. Fixes T6255. Test Plan: re-started apache and phabricator still worked; will ask csilvers to give it a whirl too Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T6255 Differential Revision: https://secure.phabricator.com/D10643
This commit is contained in:
parent
928b4edffb
commit
69b1ff3032
1 changed files with 37 additions and 36 deletions
|
@ -8,6 +8,43 @@ function phabricator_read_config_file($original_config) {
|
|||
$config = preg_replace('/\.conf\.php$/', '', $original_config);
|
||||
$full_config_path = $root.'/conf/'.$config.'.conf.php';
|
||||
|
||||
if (!Filesystem::pathExists($full_config_path)) {
|
||||
|
||||
// These are very old configuration files which we used to ship with
|
||||
// by default. File based configuration was de-emphasized once web-based
|
||||
// configuration was built. The actual files were removed to reduce
|
||||
// user confusion over how to configure Phabricator.
|
||||
|
||||
switch ($config) {
|
||||
case 'default':
|
||||
case 'production':
|
||||
return array();
|
||||
case 'development':
|
||||
return array(
|
||||
'phabricator.developer-mode' => true,
|
||||
'darkconsole.enabled' => true,
|
||||
'celerity.minify' => false,
|
||||
);
|
||||
}
|
||||
|
||||
$files = id(new FileFinder($root.'/conf/'))
|
||||
->withType('f')
|
||||
->withSuffix('conf.php')
|
||||
->withFollowSymlinks(true)
|
||||
->find();
|
||||
|
||||
foreach ($files as $key => $file) {
|
||||
$file = trim($file, './');
|
||||
$files[$key] = preg_replace('/\.conf\.php$/', '', $file);
|
||||
}
|
||||
$files = " ".implode("\n ", $files);
|
||||
|
||||
throw new Exception(
|
||||
"CONFIGURATION ERROR\n".
|
||||
"Config file '{$original_config}' does not exist. Valid config files ".
|
||||
"are:\n\n".$files);
|
||||
}
|
||||
|
||||
// Make sure config file errors are reported.
|
||||
$old_error_level = error_reporting(E_ALL | E_STRICT);
|
||||
$old_display_errors = ini_get('display_errors');
|
||||
|
@ -21,42 +58,6 @@ function phabricator_read_config_file($original_config) {
|
|||
ini_set('display_errors', $old_display_errors);
|
||||
|
||||
if ($conf === false) {
|
||||
if (!Filesystem::pathExists($full_config_path)) {
|
||||
|
||||
// These are very old configuration files which we used to ship with
|
||||
// by default. File based configuration was de-emphasized once web-based
|
||||
// configuration was built. The actual files were removed to reduce
|
||||
// user confusion over how to configure Phabricator.
|
||||
|
||||
switch ($config) {
|
||||
case 'default':
|
||||
case 'production':
|
||||
return array();
|
||||
case 'development':
|
||||
return array(
|
||||
'phabricator.developer-mode' => true,
|
||||
'darkconsole.enabled' => true,
|
||||
'celerity.minify' => false,
|
||||
);
|
||||
}
|
||||
|
||||
$files = id(new FileFinder($root.'/conf/'))
|
||||
->withType('f')
|
||||
->withSuffix('conf.php')
|
||||
->withFollowSymlinks(true)
|
||||
->find();
|
||||
|
||||
foreach ($files as $key => $file) {
|
||||
$file = trim($file, './');
|
||||
$files[$key] = preg_replace('/\.conf\.php$/', '', $file);
|
||||
}
|
||||
$files = " ".implode("\n ", $files);
|
||||
|
||||
throw new Exception(
|
||||
"CONFIGURATION ERROR\n".
|
||||
"Config file '{$original_config}' does not exist. Valid config files ".
|
||||
"are:\n\n".$files);
|
||||
}
|
||||
throw new Exception("Failed to read config file '{$config}': {$errors}");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue