From bc5271b0eb0efffb314ee8f5a6b80cd6c7e4979e Mon Sep 17 00:00:00 2001 From: berumuron Date: Mon, 17 Jan 2022 13:13:27 +0100 Subject: fix: Ignore non-PHP files in migrations/ folder (#4163) Some NAS create folders named `@eaDir` in the FreshRSS tree, including the `migrations/` folder. This broke the migration system which expected only valid PHP files to be present in this folder. Now, it ignores non-PHP files. Reference: https://github.com/FreshRSS/FreshRSS/issues/4044 --- lib/Minz/Migrator.php | 6 ++++-- tests/fixtures/migrations/2022_01_17_IgnoredFile | 0 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 tests/fixtures/migrations/2022_01_17_IgnoredFile diff --git a/lib/Minz/Migrator.php b/lib/Minz/Migrator.php index 7afc5240e..0f28237c5 100644 --- a/lib/Minz/Migrator.php +++ b/lib/Minz/Migrator.php @@ -39,7 +39,8 @@ class Minz_Migrator $migration_files = scandir($migrations_path); $migration_files = array_filter($migration_files, function ($filename) { - return $filename[0] !== '.'; + $file_extension = pathinfo($filename, PATHINFO_EXTENSION); + return $file_extension === 'php'; }); $migration_versions = array_map(function ($filename) { return basename($filename, '.php'); @@ -134,7 +135,8 @@ class Minz_Migrator } foreach (scandir($directory) as $filename) { - if ($filename[0] === '.') { + $file_extension = pathinfo($filename, PATHINFO_EXTENSION); + if ($file_extension !== 'php') { continue; } diff --git a/tests/fixtures/migrations/2022_01_17_IgnoredFile b/tests/fixtures/migrations/2022_01_17_IgnoredFile new file mode 100644 index 000000000..e69de29bb -- cgit v1.2.3