]> git.llucax.com Git - software/sercom-old.git/blob - src/T/general.php
d2abd94c605b296b48e8aea567a1d1bab61002b8
[software/sercom-old.git] / src / T / general.php
1 <?php // vim: set binary noeol et sw=4 sts=4:
2
3 define('DB_DATAOBJECT_NO_OVERLOAD', 0);
4
5 // Seteo umask para que el grupo pueda leer.
6 umask(00027);
7
8 // constantes de logging
9 require_once 'T/logconstants.php';
10
11 // obtengo configuración
12 foreach (array('.', '/etc', '/etc/sercom') as $dir) {
13     $cf = "$dir/sercom.ini";
14     if (is_readable($cf)) {
15         if (!($CONF = @parse_ini_file($cf, true))) {
16             fputs(STDERR, "No se pudo abrir archivo de configuración '$cf' ($php_errormsg)!\n");
17             exit(1);
18         }
19     }
20 }
21 unset($cf, $dir);
22
23 // Configuración de DB_DataObject
24 require_once 'PEAR.php';
25 require_once 'DB/DataObject.php';
26
27 // this is the code used to load and store DataObjects Configuration. 
28 $DBO_options = &PEAR::getStaticProperty('DB_DataObject', 'options');
29
30 // because PEAR::getstaticProperty was called with and & (get by reference)
31 // this will actually set the variable inside that method (a quasi static variable)
32 $DBO_options = $CONF['DB_DataObject'];
33
34 //unset($DBO_options);
35
36 // shortcut
37 $gconf = $CONF['general'];
38
39 // nivel de errores mostrados
40 if (isset($gconf['error_reporting'])) error_reporting($gconf['error_reporting']);
41
42 // errores
43 ini_set('track_errors', true);
44
45 // locale
46 $lang = getenv('LANG');
47 setlocale(LC_ALL, $lang);
48
49 // si no está seteado el nivel de logueo, uso el del archivo de config
50 if (!isset($LOGLEVEL)) $LOGLEVEL = isset($gconf['loglevel']) ? $gconf['loglevel'] : L_INF;
51
52 // Abro file pointer para loguear.
53 if (!isset($LOGFP)) {
54     if (@$gconf['logfile']) {
55         $LOGFP = fopen($gconf['logfile'], 'a');
56         if (!$LOGFP) {
57             fputs(STDERR, "No se pudo abrir archivo de log '{$gconf['logfile']}' ($php_errormsg)!\n");
58             exit(2);
59         }
60     } else {
61         $LOGFP = STDERR;
62     }
63 }
64
65 // compatibilidad hacia adelante
66 if (!function_exists('file_put_contents')) {
67     function file_put_contents($filename, $data) {
68         $fo = fopen($filename, 'w');
69         if ($fo === false) return false;
70         if (($ret = fwrite($fo, $data)) === false) return false;
71         if (!fclose($fo)) return false;
72         return $ret;
73     }
74 }
75 if (!function_exists('stream_get_contents')) {
76     function stream_get_contents($fp) {
77         $ret = '';
78         while (!feof($fp)) {
79             $ret .= fread($fp, 4096);
80         }
81         return $ret;
82     }
83 }
84
85 // carga de extensiones
86 require_once 'T/dl.php';
87 // funciones de logging
88 require_once 'T/log.php';
89 // funciones de códigos verificadores
90 require_once 'T/code.php';
91 // manejador de intentos
92 require_once 'T/Intento.php';
93 // data object
94
95 unset($gconf);
96
97 logs("Iniciando {$argv[0]}...");
98
99 ?>