#!/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);
?>
