Update patch.php

This commit is contained in:
Alex Tselegidis 2022-02-25 18:32:24 +01:00
parent bd9e9ff2e5
commit 64cc3dfc21

View file

@ -54,21 +54,14 @@ function detect_local_version()
function get_applied_patches() function get_applied_patches()
{ {
$patch_json_file_path = __DIR__ . '/patch.json'; $patch_log_file_path = __DIR__ . '/patch-log.php';
if ( ! file_exists($patch_json_file_path)) if ( ! file_exists($patch_log_file_path))
{ {
return []; return [];
} }
$applied_patches_contents = file_get_contents($patch_json_file_path); return require $patch_log_file_path;
if ($applied_patches_contents === FALSE)
{
die('Could not read the local "patch.json" file, please check the file permissions make sure it is readable: ' . $patch_json_file_path);
}
return json_decode($applied_patches_contents, TRUE) ?: [];
} }
function get_pending_patches($local_version, $applied_patches) function get_pending_patches($local_version, $applied_patches)
@ -223,17 +216,22 @@ function apply_pending_patches($local_version, $pending_patches)
return $new_patches; return $new_patches;
} }
function update_patches_json($applied_patches, $new_patches) function update_patch_log($applied_patches, $new_patches)
{ {
$persisted_patches = array_merge($applied_patches, $new_patches); $persisted_patches = array_merge($applied_patches, $new_patches);
$patch_json_file_path = __DIR__ . '/patch.json'; $patch_log_file_path = __DIR__ . '/patch-log.php';
$result = file_put_contents($patch_json_file_path, json_encode($persisted_patches, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)); $contents = '
<?php
return ' . preg_replace("/[0-9]+ \=\>/i", '', var_export($persisted_patches, TRUE)) . ';';
$result = file_put_contents($patch_log_file_path, $contents);
if ($result === FALSE) if ($result === FALSE)
{ {
die('Could not write the local "patch.json" file, please check the file permissions make sure it is writable: ' . $patch_json_file_path); die('Could not write the local "patch-log.php" file, please check the file permissions make sure it is writable: ' . $patch_log_file_path);
} }
} }
@ -270,5 +268,5 @@ else
{ {
echo LINE_BREAK . 'The following patches were successfully applied: ' . LINE_BREAK . LINE_BREAK . '○ ' . get_new_patch_filenames($new_patches) . LINE_BREAK; echo LINE_BREAK . 'The following patches were successfully applied: ' . LINE_BREAK . LINE_BREAK . '○ ' . get_new_patch_filenames($new_patches) . LINE_BREAK;
update_patches_json($applied_patches, $new_patches); update_patch_log($applied_patches, $new_patches);
} }