diff --git a/modules/metarefresh/hooks/hook_cron.php b/modules/metarefresh/hooks/hook_cron.php index d0a5ac514bb659be968a28772b4e5680d791a02a..375cdf744cace027e38ddfe5818c70c7f97be79e 100644 --- a/modules/metarefresh/hooks/hook_cron.php +++ b/modules/metarefresh/hooks/hook_cron.php @@ -14,31 +14,38 @@ function metarefresh_hook_cron(&$croninfo) { try { $config = SimpleSAML_Configuration::getInstance(); $mconfig = SimpleSAML_Configuration::getConfig('config-metarefresh.php'); - - $sets = $mconfig->getValue('sets'); - if (count($sets) < 1) return; - + + $sets = $mconfig->getConfigList('sets'); + foreach ($sets AS $setkey => $set) { // Only process sets where cron matches the current cron tag. - if (!in_array($croninfo['tag'], $set['cron'])) continue; - + $cronTags = $set->getArray('cron'); + if (!in_array($croninfo['tag'], $cronTags)) continue; + SimpleSAML_Logger::info('cron [metarefresh]: Executing set [' . $setkey . ']'); - - $expire = NULL; - if (array_key_exists('expireAfter', $set)) $expire = time() + $set['expireAfter']; - - $metaloader = new sspmod_metarefresh_MetaLoader($expire); - - foreach($set['sources'] AS $source) { + + $expireAfter = $set->getInteger('expireAfter', NULL); + if ($expireAfter !== NULL) { + $expire = time() + $expireAfter; + } else { + $expire = NULL; + } + + $metaloader = new sspmod_metarefresh_MetaLoader($expire); + + foreach($set->getArray('sources') AS $source) { SimpleSAML_Logger::debug('cron [metarefresh]: In set [' . $setkey . '] loading source [' . $source['src'] . ']'); $metaloader->loadSource($source); } - $metaloader->writeMetadataFiles($config->resolvePath($set['outputDir'])); + + $outputDir = $set->getString('outputDir'); + $outputDir = $config->resolvePath($outputDir); + + $metaloader->writeMetadataFiles($outputDir); } - + } catch (Exception $e) { $croninfo['summary'][] = 'Error during metarefresh: ' . $e->getMessage(); } - } ?> \ No newline at end of file