diff --git a/src/Controller/ConfigController.php b/src/Controller/ConfigController.php index 7179fad..67be996 100644 --- a/src/Controller/ConfigController.php +++ b/src/Controller/ConfigController.php @@ -7,49 +7,58 @@ namespace App\Controller; */ class ConfigController { - private array $config; - - public function __construct(bool $verbose = false, bool $quiet = false) { - $configFile = dirname(path: __DIR__, levels: 2) . "/config.json.local"; - if (!file_exists(filename: $configFile)) { - $configFile = dirname(path: __DIR__, levels: 2) . "/config.json"; - } - - if (!file_exists(filename: $configFile)) { - echo 'Missing config file' . PHP_EOL; - if (confirm(message: 'Should I create a new config based on config.json.sample?')) { - copy(from: 'config.json.sample', to: 'config.json'); - echo 'Config file has been generated. Adjust it to your needs, then proceed to database setup.' . PHP_EOL; - } else { - echo 'You first have to setup the bindAPI. Bye.' . PHP_EOL; - exit(0); - } - exit(1); - } - $configJSON = file_get_contents(filename: $configFile); + private array $config; - if (json_decode(json: $configJSON) === null) { - echo 'Config file is not valid JSON.' . PHP_EOL; - echo $configJSON . PHP_EOL; - exit(1); - } - - $this->config = json_decode(json: $configJSON, associative: true); + /** + * @param bool $verbose + * @param bool $quiet + * @param bool $test + */ + public function __construct(bool $verbose = false, bool $quiet = false, bool $test = false) + { - if ($verbose) { - $this->config['verbose'] = true; - } else { - $this->config['verbose'] = false; - } - if ($quiet) { - $this->config['quiet'] = true; + if ($test) { + $configFile = dirname(path: __DIR__, levels: 2) . "/config.json.test"; + if (!file_exists(filename: $configFile)) { + echo 'No testing (config.json.test) config has benn setup.' . PHP_EOL; + die(1); + } } else { - $this->config['quiet'] = false; + $configFile = dirname(path: __DIR__, levels: 2) . "/config.json.local"; + if (!file_exists(filename: $configFile)) { + $configFile = dirname(path: __DIR__, levels: 2) . "/config.json"; + } + + if (!file_exists(filename: $configFile)) { + echo 'Missing config file' . PHP_EOL; + if (confirm(message: 'Should I create a new config based on config.json.sample?')) { + copy(from: 'config.json.sample', to: 'config.json'); + echo 'Config file has been generated. Adjust it to your needs, then proceed to database setup.' . PHP_EOL; + } else { + echo 'You first have to setup the bindAPI. Bye.' . PHP_EOL; + exit(0); + } + exit(1); + } } - } - - public function getConfig(string $configKey): string { - return $this->config[$configKey]; - } + $configJSON = file_get_contents(filename: $configFile); + + if (json_decode(json: $configJSON) === null) { + echo 'Config file is not valid JSON.' . PHP_EOL; + echo $configJSON . PHP_EOL; + exit(1); + } + + $this->config = json_decode(json: $configJSON, associative: true); + + $this->config['verbose'] = (bool)$verbose; + $this->config['quiet'] = (bool)$quiet; + $this->config['test'] = (bool)$test; + } + + public function getConfig(string $configKey): string + { + return $this->config[$configKey]; + } }