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__);
 | |
| 
 | |
| // 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/';
 | |
| 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 your file Permissions";
 | |
| 		}
 | |
| 	}
 | |
| 	if (!file_put_contents(LOG_FILE, $message, FILE_APPEND)) {
 | |
| 		echo "Logfile not Write-able, please check your 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 . DIRECTORY_SEPARATOR . $classDirectoryPath . '.php';
 | |
| 	if (file_exists($filePath)) {
 | |
| 		require_once $filePath;
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	// Plugin file
 | |
| 	$filePath = ManiaControlDir . DIRECTORY_SEPARATOR . 'plugins/' . $classPath . '.php';
 | |
| 	if (file_exists($filePath)) {
 | |
| 		require_once $filePath;
 | |
| 		return;
 | |
| 	}
 | |
| });
 | |
| 
 | |
| // Start ManiaControl
 | |
| $maniaControl = new \ManiaControl\ManiaControl();
 | |
| $maniaControl->run();
 |