62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use Doctrine\DBAL\Tools\Console\ConnectionProvider;
 | |
| use Doctrine\DBAL\Tools\Console\ConsoleRunner;
 | |
| use Symfony\Component\Console\Helper\HelperSet;
 | |
| 
 | |
| $files       = [__DIR__ . '/../vendor/autoload.php', __DIR__ . '/../../../autoload.php'];
 | |
| $loader      = null;
 | |
| $cwd         = getcwd();
 | |
| $directories = [$cwd, $cwd . DIRECTORY_SEPARATOR . 'config'];
 | |
| $configFile  = null;
 | |
| 
 | |
| foreach ($files as $file) {
 | |
|     if (file_exists($file)) {
 | |
|         $loader = require $file;
 | |
| 
 | |
|         break;
 | |
|     }
 | |
| }
 | |
| 
 | |
| if (! $loader) {
 | |
|     throw new RuntimeException('vendor/autoload.php could not be found. Did you run `php composer.phar install`?');
 | |
| }
 | |
| 
 | |
| foreach ($directories as $directory) {
 | |
|     $configFile = $directory . DIRECTORY_SEPARATOR . 'cli-config.php';
 | |
| 
 | |
|     if (file_exists($configFile)) {
 | |
|         break;
 | |
|     }
 | |
| }
 | |
| 
 | |
| if (! file_exists($configFile)) {
 | |
|     ConsoleRunner::printCliConfigTemplate();
 | |
| 
 | |
|     exit(1);
 | |
| }
 | |
| 
 | |
| if (! is_readable($configFile)) {
 | |
|     echo 'Configuration file [' . $configFile . '] does not have read permission.' . PHP_EOL;
 | |
| 
 | |
|     exit(1);
 | |
| }
 | |
| 
 | |
| $commands                      = [];
 | |
| $helperSetOrConnectionProvider = require $configFile;
 | |
| 
 | |
| if (
 | |
|     ! $helperSetOrConnectionProvider instanceof HelperSet
 | |
|     && ! $helperSetOrConnectionProvider instanceof ConnectionProvider
 | |
| ) {
 | |
|     foreach ($GLOBALS as $candidate) {
 | |
|         if ($candidate instanceof HelperSet) {
 | |
|             $helperSetOrConnectionProvider = $candidate;
 | |
| 
 | |
|             break;
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| ConsoleRunner::run($helperSetOrConnectionProvider, $commands);
 | 
