Files
cacti/include/cli_check.php
Thomas Vincent 1ae479d4f5 feat(cli): add unified command frontend and normalize legacy failures (#7903)
* feat(cli): add unified command frontend and normalize legacy failures

Add the Symfony-backed bin/cacti entry point while preserving legacy argument, terminal, signal, and exit-status behavior. Fold in the focused legacy CLI correctness fixes from #7906 without adding its unused parser abstraction.

Keep path containment and the PHP 8.3 floor out of this review; the latter remains in #7939.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* fix(cli): enforce PHP floor and deny web dispatch

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-09-07 18:36:55 -07:00

56 lines
2.4 KiB
PHP

<?php
/*
+-------------------------------------------------------------------------+
| Copyright (C) 2004-2026 The Cacti Group |
| |
| This program is free software; you can redistribute it and/or |
| modify it under the terms of the GNU General Public License |
| as published by the Free Software Foundation; either version 2 |
| of the License, or (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
+-------------------------------------------------------------------------+
| Cacti: The Complete RRDtool-based Graphing Solution |
+-------------------------------------------------------------------------+
| This code is designed, written, and maintained by the Cacti Group. See |
| about.php and/or the AUTHORS file for specific developer information. |
+-------------------------------------------------------------------------+
| http://www.cacti.net/ |
+-------------------------------------------------------------------------+
*/
/* The following define forces the system to NOT run
* through a web browser at all, because that would be
* bad.
*
* CLI scripts use this file as a way to predefine that
* they are not to be run from a browser
*
* Any source wishing to check whether the system is in
* CLI or WEB mode should use the CACTI_WEB and
* CACTI_CLI constants.
*/
require_once(__DIR__ . '/cli_only.php');
// We are not talking to the browser
$no_http_headers = true;
// Make sure CLI's are have minimum settings
$default_limit = -1;
$default_time = -1;
$memory_limit = ini_get('memory_limit');
$execution_time = ini_get('max_execution_time');
if ($memory_limit != $default_limit) {
ini_set('memory_limit', $default_limit);
}
if ($execution_time < $default_time && $execution_time >= 0) {
ini_set('max_execution_time', $default_time);
}
include(__DIR__ . '/global.php');