diff --git a/php-packages/testing/src/integration/Setup/SetupScript.php b/php-packages/testing/src/integration/Setup/SetupScript.php new file mode 100644 index 000000000..1c23e8689 --- /dev/null +++ b/php-packages/testing/src/integration/Setup/SetupScript.php @@ -0,0 +1,114 @@ +host = getenv('DB_HOST') ?: 'localhost'; + $this->port = intval(getenv('DB_PORT') ?: 3306); + $this->name = getenv('DB_DATABASE') ?: 'flarum_test'; + $this->user = getenv('DB_USERNAME') ?: 'root'; + $this->pass = getenv('DB_PASSWORD') ?: 'root'; + $this->pref = getenv('DB_PREFIX') ?: ''; + } + + public function run() + { + echo "Connecting to database $this->name at $this->host:$this->port.\n"; + echo "Logging in as $this->user with password '$this->pass'.\n"; + echo "Table prefix: '$this->pref'\n"; + + echo "\n\nCancel now if that's not what you want...\n"; + echo "Use the following environment variables for configuration:\n"; + echo "DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD, DB_PREFIX\n"; + + sleep(4); + + echo "\nOff we go...\n"; + $installation = new Installation( + new Paths([ + 'base' => __DIR__.'/../tmp', + 'public' => __DIR__.'/../tmp/public', + 'storage' => __DIR__.'/../tmp/storage', + 'vendor' => __DIR__.'/../../../../../', + ]) + ); + + $pipeline = $installation + ->configPath('config.php') + ->debugMode(true) + ->baseUrl(BaseUrl::fromString('http://localhost')) + ->databaseConfig( + new DatabaseConfig('mysql', $this->host, $this->port, $this->name, $this->user, $this->pass, $this->pref) + ) + ->adminUser(new AdminUser( + 'admin', + 'password', + 'admin@machine.local' + )) + ->settings(['mail_driver' => 'log']) + ->build(); + + // Run the actual configuration + $pipeline->run(); + + echo "Installation complete\n"; + } +} diff --git a/php-packages/testing/src/integration/setup.php b/php-packages/testing/src/integration/setup.php deleted file mode 100644 index 95739eaac..000000000 --- a/php-packages/testing/src/integration/setup.php +++ /dev/null @@ -1,71 +0,0 @@ - __DIR__.'/tmp', - 'public' => __DIR__.'/tmp/public', - 'storage' => __DIR__.'/tmp/storage', - 'vendor' => __DIR__.'/../../vendor', - ]) -); - -$pipeline = $installation - ->configPath('config.php') - ->debugMode(true) - ->baseUrl(BaseUrl::fromString('http://localhost')) - ->databaseConfig( - new DatabaseConfig('mysql', $host, $port, $name, $user, $pass, $pref) - ) - ->adminUser(new AdminUser( - 'admin', - 'password', - 'admin@machine.local' - )) - ->settings(['mail_driver' => 'log']) - ->build(); - -/* - * Run the actual configuration - */ - -$pipeline->run(); - -echo "Installation complete\n";