Adding support for setting global config filtering function; A bit improving logs

This commit is contained in:
Pavel Shevaev 2023-05-26 17:15:51 +03:00
parent e2f7d07342
commit 4105ad80e0
1 changed files with 21 additions and 4 deletions

View File

@ -4,6 +4,7 @@ use Exception;
$GLOBALS['CONFIG_BASE_DIRS'] = array();
$GLOBALS['CONFIG_INIT_WORKER_FUNC'] = null;
$GLOBALS['CONFIG_FILTER_FN'] = null;
task('config_worker', function(array $args)
{
@ -55,8 +56,9 @@ function config_map_base_dir($file, $normalized = false, $strict = true, $dirs =
return null;
}
function config_real_path($rel_path, $strict = true)
function config_real_path($rel_path, $strict = true, $dirs = null)
{
if(!is_array($dirs))
$dirs = config_base_dirs();
foreach($dirs as $dir)
if(is_file($dir . '/' . $rel_path))
@ -80,7 +82,22 @@ function config_set_worker_init_fn($fn)
function config_scan_files()
{
return scan_files_rec(config_base_dirs(), array('conf.js'));
$files = scan_files_rec(config_base_dirs(), array('conf.js'));
return config_filter_files($files);
}
function config_filter_files(array $files)
{
global $CONFIG_FILTER_FN;
if($CONFIG_FILTER_FN != null)
$files = call_user_func($CONFIG_FILTER_FN, $files);
return $files;
}
function config_set_files_filter_fn(callable $fn)
{
global $CONFIG_FILTER_FN;
$CONFIG_FILTER_FN = $fn;
}
function config_pack_bundle(array $cache_entries, $use_lz4 = false, $use_config_refs = false)
@ -338,7 +355,7 @@ function config_fetch_ex(
list($result, $total_stales) = _config_fetch_cache_ex($results_by_job);
if($verbose)
echo "Miss/Hit: $total_stales/" . sizeof($result->all) . "\n";
echo "Miss/All: $total_stales/" . sizeof($result->all) . "\n";
config_save_includes_map($includes_map, $includes_map_file);