diff --git a/public/install.php b/public/install.php new file mode 100644 index 00000000..8003d353 --- /dev/null +++ b/public/install.php @@ -0,0 +1,420 @@ +dump($config); + + file_put_contents(PHPCI_DIR . 'PHPCI/config.yml', $yaml); + + /** + * Create database: + */ + $dbhost = $config['b8']['database']['servers']['write'][0]; + $dbname = $config['b8']['database']['name']; + $dbuser = $config['b8']['database']['username']; + $dbpass = $config['b8']['database']['password']; + + $pdo = new PDO('mysql:host=' . $dbhost, $dbuser, $dbpass); + + $pdo->query('CREATE DATABASE IF NOT EXISTS `' . $dbname . '`'); + + /** + * Bootstrap PHPCI and populate database: + */ + require(PHPCI_DIR . 'bootstrap.php'); + + ob_start(); + $gen = new \b8\Database\Generator(\b8\Database::getConnection(), 'PHPCI', PHPCI_DIR . 'PHPCI/Model/Base/'); + $gen->generate(); + ob_end_clean(); + + /** + * Create our admin user: + */ + $store = \b8\Store\Factory::getStore('User'); + + try { + $user = $store->getByEmail($adminUser); + } catch (Exception $ex) { + } + + if (empty($user)) { + $user = new \PHPCI\Model\User(); + $user->setEmail($adminUser); + $user->setName($adminUser); + $user->setIsAdmin(1); + $user->setHash(password_hash($adminPass, PASSWORD_DEFAULT)); + + $store->save($user); + } + + $formAction = '/session/login'; + } +} + + +switch ($installStage) { + case 'start': + $nextStage = 'database'; + break; + + case 'database': + $nextStage = 'github'; + break; + + case 'github': + $nextStage = 'email'; + break; + + case 'email': + $nextStage = 'complete'; + break; +} + +?> + + +
+