Adding convenience stuff and removing some specifics
Publish PHP Package / docker (push) Successful in 7s
Details
Publish PHP Package / docker (push) Successful in 7s
Details
This commit is contained in:
parent
0dc2cfda6d
commit
04fd79645c
|
@ -100,17 +100,25 @@ class ConfigUpdateRequest
|
|||
|
||||
class ConfigUpdateResult
|
||||
{
|
||||
public ConfigUpdateMode $mode;
|
||||
|
||||
public ConfigDirFiles $affected_files;
|
||||
public array $affected_entries = array();
|
||||
|
||||
public array $added_files = array();
|
||||
public array $removed_files = array();
|
||||
|
||||
/** @var array<string, string> */
|
||||
public array $errors = array();
|
||||
public int $corruptions = 0;
|
||||
public int $fast_jsons = 0;
|
||||
|
||||
function __construct(ConfigCacheUpdateParams $params)
|
||||
function isPatchPossible() : bool
|
||||
{
|
||||
$this->affected_files = $params->affected_files;
|
||||
return ($this->mode == ConfigUpdateMode::Selected ||
|
||||
$this->mode === ConfigUpdateMode::DetectChanged) &&
|
||||
count(array_filter($this->added_files, fn($f) => config_is_file($f))) == 0 &&
|
||||
count(array_filter($this->removed_files, fn($f) => config_is_file($f))) == 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -171,16 +179,22 @@ class ConfigManager
|
|||
$affected_files = $this->_getAffectedFiles($req, $added_files, $removed_files);
|
||||
|
||||
//NOTE: at this point taking into account only config files
|
||||
$affected_files->filter(fn($file) => str_ends_with($file, '.conf.js'));
|
||||
$affected_files->filter(fn($file) => config_is_file($file));
|
||||
|
||||
config_log("Affected files: {$affected_files->count()}");
|
||||
|
||||
$update_result = new ConfigUpdateResult();
|
||||
$update_result->mode = $req->mode;
|
||||
$update_result->affected_files = $affected_files;
|
||||
$update_result->added_files = $added_files;
|
||||
$update_result->removed_files = $removed_files;
|
||||
|
||||
$update_params = new ConfigCacheUpdateParams(
|
||||
globals: $this->globals,
|
||||
affected_files: $affected_files,
|
||||
verbose: $req->verbose
|
||||
);
|
||||
$update_result = self::_updateCache($update_params);
|
||||
self::_updateCache($update_result, $update_params);
|
||||
|
||||
//let's clear internal cache once the update procedure is done
|
||||
$this->cache->clear();
|
||||
|
@ -199,12 +213,10 @@ class ConfigManager
|
|||
return $update_result;
|
||||
}
|
||||
|
||||
private function _updateCache(ConfigCacheUpdateParams $params) : ConfigUpdateResult
|
||||
private function _updateCache(ConfigUpdateResult $result, ConfigCacheUpdateParams $params)
|
||||
{
|
||||
$result = new ConfigUpdateResult($params);
|
||||
|
||||
if($params->affected_files->isEmpty())
|
||||
return $result;
|
||||
return;
|
||||
|
||||
$t = microtime(true);
|
||||
|
||||
|
@ -225,8 +237,6 @@ class ConfigManager
|
|||
|
||||
if($params->verbose)
|
||||
config_log("Update cache: " . round(microtime(true) - $t,2) . " sec.");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function _checkFileMap(ConfigUpdateRequest $req, array &$added_files, array &$removed_files)
|
||||
|
@ -312,7 +322,7 @@ class ConfigManager
|
|||
//if there were removed files we need to rebuild affected files
|
||||
foreach($removed_files as $file)
|
||||
{
|
||||
if(!str_ends_with($file, '.conf.js'))
|
||||
if(!config_is_file($file))
|
||||
{
|
||||
$affected_by_file = $fs_cache_map->getAffectedFiles($file);
|
||||
foreach($affected_by_file as $dep)
|
||||
|
@ -328,7 +338,7 @@ class ConfigManager
|
|||
{
|
||||
$affected_files->addFile($file, unique: true);
|
||||
|
||||
if(!str_ends_with($file, '.conf.js'))
|
||||
if(!config_is_file($file))
|
||||
{
|
||||
$affected_by_file = $fs_cache_map->getAffectedFiles($file);
|
||||
foreach($affected_by_file as $dep)
|
||||
|
@ -469,13 +479,3 @@ function config_bench_load(ConfigGlobals $globals, string $file)
|
|||
config_log("Load: " . (microtime(true) - $t));
|
||||
}
|
||||
|
||||
function config_changes_has_deleted_or_added(TaskmanFileChanges $file_changes, iterable $files) : bool
|
||||
{
|
||||
foreach($files as $file)
|
||||
{
|
||||
if(str_ends_with($file, '.conf.js') && ($file_changes->isDeleted($file) || $file_changes->isCreated($file)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ function config_real_path(array $base_dirs, string $rel_path, bool $strict = tru
|
|||
|
||||
function config_is_file(string $filename) : bool
|
||||
{
|
||||
return (strrpos($filename, '.conf.js') === (strlen($filename) - 8));
|
||||
return str_ends_with($filename, '.conf.js');
|
||||
}
|
||||
|
||||
function config_file2id(string $conf_dir, string $filename) : int
|
||||
|
|
Loading…
Reference in New Issue