Files
webgui/emhttp/plugins/dynamix.plugin.manager/scripts/plugincheck
ljm42 a7b1a6c12f Fix Docker notifications
and improve consistency in related files
2024-03-14 14:12:30 -07:00

59 lines
2.2 KiB
PHP
Executable File

#!/usr/bin/php -q
<?PHP
/* Copyright 2005-2024, Lime Technology
* Copyright 2012-2024, Bergware International.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*/
?>
<?
$docroot ??= ($_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp');
require_once "$docroot/webGui/include/Wrappers.php";
require_once "$docroot/plugins/dynamix.plugin.manager/include/PluginHelpers.php";
// this command will set the $notify array
extract(parse_plugin_cfg('dynamix',true));
// Multi-language support
$_SERVER['REQUEST_URI'] = "scripts";
$login_locale = _var($display,'locale');
require_once "$docroot/webGui/include/Translations.php";
$var = (array)@parse_ini_file('/var/local/emhttp/var.ini');
function apos($text) {
// So that "&apos;" doesn't show up in email
return str_replace("&apos;","'",$text);
}
$current = parse_ini_file('/etc/unraid-version');
$server = strtoupper(_var($var,'NAME','tower'));
$output = _var($notify,'plugin');
$builtin = ['unRAIDServer','unRAIDServer-'];
$script = "$docroot/webGui/scripts/notify";
$tmp = '/tmp/plugins';
$plugins = '/var/log/plugins';
plugin('checkall');
foreach (glob("/$tmp/*.plg", GLOB_NOSORT) as $file) {
$name = basename($file,'.plg');
// skip OS related updates
if (in_array($name,$builtin)) continue;
$new = plugin('version', $file);
$old = plugin('version', "$plugins/$name.plg");
$min = plugin('min', $file) ?: $current['version'];
// silently suppress bad download of PLG file
if (strcmp($new, $old)>0 && !version_compare($min,$current['version'],">")) {
$event = apos(_("Plugin")." - $name [$new]");
$subject = apos(sprintf(_("Notice [%s] - Version update %s"),$server,$new));
$description = apos(sprintf(_("A new version of %s is available"),$name));
exec("$script -e ".escapeshellarg($event)." -s ".escapeshellarg($subject)." -d ".escapeshellarg($description)." -i ".escapeshellarg("normal $output")." -l '/Plugins' -x");
}
}
exit(0);
?>