More work on WordPress style installer

This commit is contained in:
Duncan Sommerville 2014-11-27 19:10:23 -05:00
parent d2f41eb8be
commit 0b77222013
2 changed files with 37 additions and 15 deletions

View file

@ -1,8 +1,18 @@
<?php <?php
require_once(LIB_PATH . "propel/runtime/lib/Propel.php"); require_once(LIB_PATH . "propel/runtime/lib/Propel.php");
/**
* Check to see if Airtime is properly configured.
*
* @return boolean true if all Airtime dependencies and services are
* properly configured and running
*/
function airtimeCheckConfiguration() {
return airtimeCheckDatabase()
&& airtimeCheckDependencies();
}
function airtimeCheckDependencies() { function airtimeCheckDependencies() {
$deps = array(); $deps = array();
$deps["zend"] = file_exists('/usr/share/php/libzend-framework-php'); $deps["zend"] = file_exists('/usr/share/php/libzend-framework-php');
@ -16,6 +26,8 @@ function airtimeCheckDependencies() {
* @return boolean true if the database exists and is configured correctly, false otherwise * @return boolean true if the database exists and is configured correctly, false otherwise
*/ */
function airtimeCheckDatabase() { function airtimeCheckDatabase() {
airtimeConfigureDatabase();
if (!file_exists(BUILD_PATH . AIRTIME_CONFIG)) { if (!file_exists(BUILD_PATH . AIRTIME_CONFIG)) {
return false; return false;
} }
@ -32,7 +44,5 @@ function airtimeCheckDatabase() {
} }
function airtimeConfigureDatabase() { function airtimeConfigureDatabase() {
Propel::init(APPLICATION_PATH . "/configs/airtime-conf-production.php"); Propel::init(APPLICATION_PATH . "/configs/airtime-conf-production.php");
} }

View file

@ -1,5 +1,18 @@
<?php <?php
global $configRun;
function showConfigCheckPage() {
if (!isset($configRun) || !$configRun) {
// This will run any necessary setup we need if
// configuration hasn't been initialized
airtimeCheckConfiguration();
}
require_once(WEB_ROOT_PATH . 'config-check.php');
die();
}
define('ROOT_PATH', dirname( __DIR__) . '/'); define('ROOT_PATH', dirname( __DIR__) . '/');
define('WEB_ROOT_PATH', __DIR__ . '/'); define('WEB_ROOT_PATH', __DIR__ . '/');
define('LIB_PATH', ROOT_PATH . 'library/'); define('LIB_PATH', ROOT_PATH . 'library/');
@ -14,24 +27,23 @@ define('AIRTIME_CONFIG', 'airtime.conf');
require_once(APPLICATION_PATH . "/configs/conf.php"); require_once(APPLICATION_PATH . "/configs/conf.php");
require_once(BUILD_PATH . SETUP_DIR . 'load.php'); require_once(BUILD_PATH . SETUP_DIR . 'load.php');
function showConfigCheckPage() {
airtimeConfigureDatabase();
require_once(WEB_ROOT_PATH . 'config-check.php');
die();
}
if (array_key_exists('config', $_GET)) { if (array_key_exists('config', $_GET)) {
showConfigCheckPage(); showConfigCheckPage();
} }
// If a configuration file exists, forward to our boot script // If a configuration file exists, forward to our boot script
if (file_exists(BUILD_PATH . AIRTIME_CONFIG)) { if (file_exists(BUILD_PATH . AIRTIME_CONFIG)) {
airtimeConfigureDatabase(); /*
* Even if the user has been through the setup process and
// If the database doesn't exist, or is improperly configured, * created an airtime.conf file (or they may have simply
// show the user a configuration error page so they know what went wrong * copied the example file) their settings aren't necessarily
if (!airtimeCheckDatabase()) { * correctly configured.
*
* If something is improperly configured, show the user a
* configuration checklist page so they know what went wrong
*/
if (!airtimeCheckConfiguration()) {
$configRun = true;
showConfigCheckPage(); showConfigCheckPage();
} }