put(); $c->put("====================", $txColor, $bgColor); $c->put(" MyImouto installer ", $txColor, $bgColor); $c->put("====================", $txColor, $bgColor); $c->put(); /** * Get data for admin account */ $c->put("Admin account", null, Color::BLUE); $c->put("Please enter a name and password for the admin account."); $c->write("Note: ", Color::RED); $c->put("the password will be shown."); list($adminName, $adminPass) = getAdminData($c); /** * Database */ $c->put("Database", null, Color::BLUE); # Install database $c->write("Creating tables......"); $migrator->loadSchema(); $c->put('done'); # Run migrations $c->write("Running migrations..."); $migrator->run(); $c->put('done'); # Run seeds $c->write("Seeding.............."); $migrator->runSeeds(); $c->put('done'); # Create user in database $c->write("Creating admin account..."); Rails\ActiveRecord\ActiveRecord::connection()->executeSql( 'INSERT INTO users (created_at, name, password_hash, level, show_advanced_editing) VALUES (?, ?, ?, ?, ?)', date('Y-m-d H:i:s'), $adminName, User::sha1($adminPass), 50, 1 ); Rails\ActiveRecord\ActiveRecord::connection()->executeSql( 'INSERT INTO user_blacklisted_tags VALUES (?, ?)', 1, implode("\r\n", CONFIG()->default_blacklists) ); $c->put("done"); /** * Create /public/data folders */ $c->put("\n"); $c->write("Creating /public/data folders..."); $dataPath = Rails::publicPath() . '/data'; $dirs = [ 'avatars', 'image', 'import', 'jpeg', 'preview', 'sample' ]; if (!is_dir($dataPath)) { mkdir($dataPath); } foreach ($dirs as $dir) { $path = $dataPath . '/' . $dir; if (!is_dir($path)) { mkdir($path); } } /** * Finish */ $c->put(); $c->put("Installation finished.", Color::GREEN); $c->put("You may delete this install.php file."); $c->put(); function nullErrorHandler() {} function getAdminData($c) { $adminName = $c->input("Account name: "); $adminPass = $c->input("Password: "); if ($c->confirm("Is the information correct? (y/n) ")) { return [$adminName, $adminPass]; } else { $c->put(); return getAdminData($c); } }