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. |