summaryrefslogtreecommitdiffstats
path: root/extra/check-knex-filenames.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'extra/check-knex-filenames.mjs')
-rw-r--r--extra/check-knex-filenames.mjs72
1 files changed, 72 insertions, 0 deletions
diff --git a/extra/check-knex-filenames.mjs b/extra/check-knex-filenames.mjs
new file mode 100644
index 0000000..4911fc5
--- /dev/null
+++ b/extra/check-knex-filenames.mjs
@@ -0,0 +1,72 @@
+import fs from "fs";
+const dir = "./db/knex_migrations";
+
+// Get the file list (ending with .js) from the directory
+const files = fs.readdirSync(dir).filter((file) => file !== "README.md");
+
+// They are wrong, but they had been merged, so allowed.
+const exceptionList = [
+ "2024-08-24-000-add-cache-bust.js",
+ "2024-10-1315-rabbitmq-monitor.js",
+];
+
+// Correct format: YYYY-MM-DD-HHmm-description.js
+
+for (const file of files) {
+ if (exceptionList.includes(file)) {
+ continue;
+ }
+
+ // Check ending with .js
+ if (!file.endsWith(".js")) {
+ console.error(`It should end with .js: ${file}`);
+ process.exit(1);
+ }
+
+ const parts = file.split("-");
+
+ // Should be at least 5 parts
+ if (parts.length < 5) {
+ console.error(`Invalid format: ${file}`);
+ process.exit(1);
+ }
+
+ // First part should be a year >= 2024
+ const year = parseInt(parts[0], 10);
+ if (isNaN(year) || year < 2023) {
+ console.error(`Invalid year: ${file}`);
+ process.exit(1);
+ }
+
+ // Second part should be a month
+ const month = parseInt(parts[1], 10);
+ if (isNaN(month) || month < 1 || month > 12) {
+ console.error(`Invalid month: ${file}`);
+ process.exit(1);
+ }
+
+ // Third part should be a day
+ const day = parseInt(parts[2], 10);
+ if (isNaN(day) || day < 1 || day > 31) {
+ console.error(`Invalid day: ${file}`);
+ process.exit(1);
+ }
+
+ // Fourth part should be HHmm
+ const time = parts[3];
+
+ // Check length is 4
+ if (time.length !== 4) {
+ console.error(`Invalid time: ${file}`);
+ process.exit(1);
+ }
+
+ const hour = parseInt(time.substring(0, 2), 10);
+ const minute = parseInt(time.substring(2), 10);
+ if (isNaN(hour) || hour < 0 || hour > 23 || isNaN(minute) || minute < 0 || minute > 59) {
+ console.error(`Invalid time: ${file}`);
+ process.exit(1);
+ }
+}
+
+console.log("All knex filenames are correct.");