2
[irbot.git] / main.php
blobea3665cd8c4f59c6d1c7033bb950ec8bcc53ecf6
1 #/usr/bin/php -f
2 <?php
4 declare(ticks = 1);
6 /**
7 * print_r avec un jolis formatage
9 * @param mix $v
11 function xdump($v) {
12 echo "<pre>\n"; print_r($v); echo "</pre>\n";
15 /**
16 * var_dump avec un jolis formatage
19 function xvdump() {
20 $args = func_get_args();
21 echo "<pre>\n"; call_user_func_array('var_dump',$args); echo "</pre>\n";
24 // Mécanisme de chargement automatique des classes selon leur nom
25 function __autoload($class) {
26 if (is_readable('./sources/'.$class.'-class.inc.php')) {
27 require_once './sources/'.$class.'-class.inc.php';
28 } else {
29 trigger_error ("Class '$class' not found",E_USER_ERROR);
34 function backtrace() {
35 $backtrace = debug_backtrace();
36 $err_backtrace = " Backtrace :\n=============\n\r";
37 foreach($backtrace as $t) {
38 $err_backtrace.= 'File : '.((isset($t['file'])) ? $t['file']:'[PHP KERNEL]').((isset($t['line'])) ? ':'.$t['line'] : '') . "\n".
39 'Function : '.$t['function']."\n";
40 if (isset($t['class'])) {
41 $err_backtrace.= 'Class : '.$t['class']."\n";
43 if (isset($t['type'])) {
44 $err_backtrace.= 'Type : '.$t['type']."\n";
46 if (isset($t['args']) && !empty($t['args'])) {
47 $err_backtrace.= '--== Args ==--'."\n";
48 ob_start();
49 var_dump($t['args']);
50 $err_backtrace.= "\t".str_replace("\n","\n\t",ob_get_contents());
51 ob_end_clean();
53 $err_backtrace.= "\n\n- - - - - - - - - - - - -\n\r";
55 return $err_backtrace;
58 function sig_handler($signo) {
59 switch ($signo) {
60 case SIGTERM:
61 $MainProc->MyConn->disconnect();
62 exit;
63 break;
64 case SIGHUP:
65 // gestion du redémarrage
66 break;
67 case SIGUSR1:
68 echo "Reçu le signe SIGUSR1...\n";
69 break;
70 default:
71 // gestion des autres signaux
75 // Arguments passés à la ligne de commande
76 if ( isset($argv[1], $argv[2], $argv[3], $argv[4]) ) {
77 $server = $argv[1] ;
78 $port = (int) $argv[2] ;
79 $chan = '#' . $argv[3] ;
80 $name = $argv[4] ;
81 } else {
82 $server = 'multimud.homeip.net';
83 $port = 6667;
84 $chan = '#projet_mud';
85 $name = 'RPGBot';
88 require_once('./sources/IRCMain-class.inc.php');
89 require_once('./sources/IRCConn-class.inc.php');
91 pcntl_signal(SIGTERM, "sig_handler");
92 pcntl_signal(SIGHUP, "sig_handler");
93 pcntl_signal(SIGUSR1, "sig_handler");
95 // Nouvelle instance de la classe IRCMain
96 $MainProc = new IRCMain($server, $port, $chan, $name, '127.0.0.1','xrogaan.be');
98 // On charge les plugins que l'on souhaite
99 // il n'est pas nécéssaire de charger le plugin de base, plug_base
100 //$MainProc -> AddPlug('plug_help');
102 // On lance le bot
103 $MainProc -> run();