115 lines
3.3 KiB
PHP
115 lines
3.3 KiB
PHP
<?php
|
|
|
|
// Run configuration
|
|
define('LOG_WRITE_CURRENT_FILE', 'ManiaControl.log'); // Write current log to extra file in base dir
|
|
define('LOG_NAME_USE_DATE', true); // Use current date as suffix for log file name in logs folder
|
|
define('LOG_NAME_USE_PID', true); // Use current process id as suffix for log file name in logs folder
|
|
|
|
// Define base dir
|
|
define('ManiaControlDir', __DIR__ . DIRECTORY_SEPARATOR);
|
|
|
|
// Define fatal error level
|
|
define('E_FATAL', E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_USER_ERROR);
|
|
|
|
// Set process settings
|
|
ini_set('memory_limit', '64M');
|
|
if (function_exists('date_default_timezone_get') && function_exists('date_default_timezone_set')) {
|
|
date_default_timezone_set(@date_default_timezone_get());
|
|
}
|
|
|
|
// Build log file name
|
|
$logFileName = ManiaControlDir . 'logs' . DIRECTORY_SEPARATOR;
|
|
if (!is_dir($logFileName)) {
|
|
mkdir($logFileName);
|
|
}
|
|
$logFileName .= 'ManiaControl';
|
|
if (LOG_NAME_USE_DATE) {
|
|
$logFileName .= '_' . date('Y-m-d');
|
|
}
|
|
if (LOG_NAME_USE_PID) {
|
|
$logFileName .= '_' . getmypid();
|
|
}
|
|
$logFileName .= '.log';
|
|
define('LOG_FILE', $logFileName);
|
|
|
|
// Delete old current log file
|
|
if (LOG_WRITE_CURRENT_FILE) {
|
|
$currentLogFileName = ManiaControlDir . LOG_WRITE_CURRENT_FILE;
|
|
if (file_exists($currentLogFileName) && is_writable($currentLogFileName)) {
|
|
unlink($currentLogFileName);
|
|
}
|
|
define('LOG_CURRENT_FILE', $currentLogFileName);
|
|
}
|
|
|
|
logMessage('Starting ManiaControl ...');
|
|
|
|
/**
|
|
* Checking if all the needed libraries are installed.
|
|
* - MySQLi
|
|
* - cURL
|
|
*/
|
|
logMessage('Checking for installed MySQLi ... ', false);
|
|
if (extension_loaded('mysqli')) {
|
|
logMessage('FOUND!');
|
|
} else {
|
|
logMessage('NOT FOUND!');
|
|
logMessage(' -- You don\'t have MySQLi installed, make sure to check: http://www.php.net/manual/en/mysqli.installation.php');
|
|
exit();
|
|
}
|
|
|
|
logMessage('Checking for installed cURL ... ', false);
|
|
if (extension_loaded('curl')) {
|
|
logMessage('FOUND!');
|
|
} else {
|
|
logMessage('NOT FOUND!');
|
|
logMessage('You don\'t have cURL installed, make sure to check: http://www.php.net/manual/en/curl.installation.php');
|
|
exit();
|
|
}
|
|
|
|
/**
|
|
* Log and echo the given text
|
|
*
|
|
* @param string $message
|
|
* @param bool $eol
|
|
*/
|
|
function logMessage($message, $eol = true) {
|
|
$date = date('d.M y H:i:s');
|
|
$message = $date . ' ' . $message;
|
|
if ($eol) {
|
|
$message .= PHP_EOL;
|
|
}
|
|
if (defined('LOG_CURRENT_FILE')) {
|
|
if (!file_put_contents(LOG_CURRENT_FILE, $message, FILE_APPEND)) {
|
|
echo 'Logfile not write-able, please check the File Permissions!';
|
|
}
|
|
}
|
|
if (!file_put_contents(LOG_FILE, $message, FILE_APPEND)) {
|
|
echo 'Logfile not write-able, please check the File Permissions!';
|
|
}
|
|
echo $message;
|
|
}
|
|
|
|
// Autoload Function that loads ManiaControl Class Files on Demand
|
|
spl_autoload_register(function ($className) {
|
|
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, $className);
|
|
|
|
// Core file
|
|
$classDirectoryPath = preg_replace('/ManiaControl/', 'core', $classPath, 1);
|
|
$filePath = ManiaControlDir . $classDirectoryPath . '.php';
|
|
if (file_exists($filePath)) {
|
|
require_once $filePath;
|
|
return;
|
|
}
|
|
|
|
// Plugin file
|
|
$filePath = ManiaControlDir . 'plugins'.DIRECTORY_SEPARATOR . $classPath . '.php';
|
|
if (file_exists($filePath)) {
|
|
require_once $filePath;
|
|
return;
|
|
}
|
|
});
|
|
|
|
// Start ManiaControl
|
|
$maniaControl = new \ManiaControl\ManiaControl();
|
|
$maniaControl->run();
|