Subversion Repositories oidplus

Rev

Rev 1051 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1051 Rev 1407
Line 1... Line 1...
1
<?php /* <ViaThinkSoftSignature>
1
<?php /* <ViaThinkSoftSignature>
2
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
23
Q==
23
w==
24
</ViaThinkSoftSignature> */ ?>
24
</ViaThinkSoftSignature> */ ?>
25
<?php
25
<?php
26
 
26
 
27
/*
27
/*
28
 
28
 
29
      VNag - Nagios Framework for PHP                  (C) 2014-2022
29
      VNag - Nagios Framework for PHP                  (C) 2014-2023
30
      __     ___      _____ _     _       _     ____         __ _
30
      __     ___      _____ _     _       _     ____         __ _
31
      \ \   / (_) __ |_   _| |__ (_)_ __ | | __/ ___|  ___  / _| |_
31
      \ \   / (_) __ |_   _| |__ (_)_ __ | | __/ ___|  ___  / _| |_
32
       \ \ / /| |/ _` || | | '_ \| | '_ \| |/ /\___ \ / _ \| |_| __|
32
       \ \ / /| |/ _` || | | '_ \| | '_ \| |/ /\___ \ / _ \| |_| __|
33
        \ V / | | (_| || | | | | | | | | |   <  ___) | (_) |  _| |_
33
        \ V / | | (_| || | | | | | | | | |   <  ___) | (_) |  _| |_
34
         \_/  |_|\__,_||_| |_| |_|_|_| |_|_|\_\|____/ \___/|_|  \__|
34
         \_/  |_|\__,_||_| |_| |_|_|_| |_|_|\_\|____/ \___/|_|  \__|
35
 
35
 
36
      Developed by Daniel Marschall             www.viathinksoft.com
36
      Developed by Daniel Marschall             www.viathinksoft.com
37
      Licensed under the terms of the Apache 2.0 license
37
      Licensed under the terms of the Apache 2.0 license
38
      Revision 2022-12-18
38
      Revision 2023-09-11
39
 
39
 
40
*/
40
*/
41
 
41
 
42
/****************************************************************************************************
42
/****************************************************************************************************
43
 
43
 
Line 341... Line 341...
341
// Useful for mock tests.
341
// Useful for mock tests.
342
$OVERWRITE_ARGUMENTS = null;
342
$OVERWRITE_ARGUMENTS = null;
343
 
343
 
344
function _empty($x) {
344
function _empty($x) {
345
        // Returns true for '' or null. Does not return true for value 0 or '0' (like empty() does)
345
        // Returns true for '' or null. Does not return true for value 0 or '0' (like empty() does)
346
        return trim($x) == '';
346
        return is_null($x) || (trim($x) == '');
347
}
347
}
348
 
348
 
349
abstract class VNag {
349
abstract class VNag {
350
        /*public*/ const VNAG_VERSION = '2022-12-18';
350
        /*public*/ const VNAG_VERSION = '2022-12-18';
351
 
351
 
Line 1312... Line 1312...
1312
        // This is not used by the framework itself, but can be useful for plugins
1312
        // This is not used by the framework itself, but can be useful for plugins
1313
        // Note: For icinga2, the path is /var/lib/nagios/.vnag/cache/
1313
        // Note: For icinga2, the path is /var/lib/nagios/.vnag/cache/
1314
        protected function get_cache_dir() {
1314
        protected function get_cache_dir() {
1315
                $homedir = @getenv('HOME');
1315
                $homedir = @getenv('HOME');
1316
                if ($homedir && is_dir($homedir)) {
1316
                if ($homedir && is_dir($homedir)) {
1317
                        $try = "${homedir}/.vnag/cache";
1317
                        $try = "$homedir/.vnag/cache";
1318
                        if (is_dir($try)) return $try;
1318
                        if (is_dir($try)) return $try;
1319
                        if (@mkdir($try,0777,true)) return $try;
1319
                        if (@mkdir($try,0777,true)) return $try;
1320
                }
1320
                }
1321
 
1321
 
1322
                $user = posix_getpwuid(posix_geteuid());
1322
                $user = posix_getpwuid(posix_geteuid());
1323
                if (isset($user['dir']) && is_dir($user['dir'])) {
1323
                if (isset($user['dir']) && is_dir($user['dir'])) {
1324
                        $homedir = $user['dir'];
1324
                        $homedir = $user['dir'];
1325
                        $try = "${homedir}/.vnag/cache";
1325
                        $try = "$homedir/.vnag/cache";
1326
                        if (is_dir($try)) return $try;
1326
                        if (is_dir($try)) return $try;
1327
                        if (@mkdir($try,0777,true)) return $try;
1327
                        if (@mkdir($try,0777,true)) return $try;
1328
                }
1328
                }
1329
 
1329
 
1330
                if (isset($user['name']) && is_dir($user['name'])) {
1330
                if (isset($user['name']) && is_dir($user['name'])) {
Line 2379... Line 2379...
2379
                }
2379
                }
2380
        }
2380
        }
2381
 
2381
 
2382
        protected function replaceStuff($text) {
2382
        protected function replaceStuff($text) {
2383
                global $argv;
2383
                global $argv;
-
 
2384
                if (php_sapi_name() == 'cli') {
2384
                $text = str_replace('$SCRIPTNAME$', $argv[0], $text);
2385
                        $text = str_replace('$SCRIPTNAME$', $argv[0], $text);
-
 
2386
                } else {
-
 
2387
                        $text = str_replace('$SCRIPTNAME$', basename($_SERVER['SCRIPT_NAME']), $text);
-
 
2388
                }
2385
                $text = str_replace('$CURYEAR$', date('Y'), $text);
2389
                $text = str_replace('$CURYEAR$', date('Y'), $text);
2386
                return $text;
2390
                return $text;
2387
        }
2391
        }
2388
 
2392
 
2389
        // $syntax should contain the option syntax only, no explanations.
2393
        // $syntax should contain the option syntax only, no explanations.