allow urls to be generated from cli, with the help of argument --uri=

This commit is contained in:
Davy Rolink 2014-09-12 01:08:04 +02:00
parent ec9c07a3d7
commit 7585eb23e0
3 changed files with 30 additions and 3 deletions

View File

@ -32,6 +32,8 @@ if(!psm_is_cli()) {
die('This script can only be run from the command line.');
}
psm_set_cli_uri();
// prevent cron from running twice at the same time
// however if the cron has been running for X mins, we'll assume it died and run anyway
// if you want to change PSM_CRON_TIMEOUT, have a look in src/includes/psmconfig.inc.php.

View File

@ -548,6 +548,32 @@ function psm_is_cli() {
return (!isset($_SERVER['SERVER_SOFTWARE']) || php_sapi_name() == 'cli');
}
/**
* Set _server vars from the cli argument --uri=
* Example: php cron/status.cron.php --uri="http://www.phpservermonitor.org/"
*/
function psm_set_cli_uri() {
foreach ($_SERVER['argv'] as $argv) {
if (0 === strpos($argv, '--uri=')) {
$uriArray = parse_url(substr($argv, 6));
if (!empty($uriArray['scheme'])) {
$_SERVER['REQUEST_SCHEME'] = $uriArray['scheme'];
$_SERVER['SERVER_PORT'] = ($uriArray['scheme'] == 'https') ? 443 : 80;
}
if (!empty($uriArray['host'])) {
$_SERVER['HTTP_HOST'] = $uriArray['host'];
}
if (!empty($uriArray['port'])) {
$_SERVER['SERVER_PORT'] = $uriArray['port'];
}
if (!empty($uriArray['path'])) {
$_SERVER['SCRIPT_NAME'] = $uriArray['path'];
}
break;
}
}
}
###############################################
#
# Debug functions

View File

@ -245,9 +245,8 @@ class StatusNotifier {
$pushover->setTitle(psm_parse_msg($this->status_new, 'pushover_title', $this->server));
$pushover->setMessage(str_replace('<br/>', "\n", $message));
// @todo fix url when script is executed via CLI
// $pushover->setUrl($url);
// $pushover->setUrlTitle(psm_get_lang('system', 'title'));
$pushover->setUrl(psm_build_url());
$pushover->setUrlTitle(psm_get_lang('system', 'title'));
foreach($users as $user) {
if(trim($user['pushover_key']) == '') {