From 3d9f3a92ef60c6ba958b0b2bd0b9bebec0791f40 Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Debian Linux)" <rob@synchro.net>
Date: Fri, 5 Apr 2024 20:47:02 -0700
Subject: [PATCH] Clean up the old filebase data files from all the configured
 data_dir's

De-duplicate the data_dirs first (most sysops use a single data dir for all
file directories).

Also, don't print non-existing old files when run with -q (quiet) option.
---
 exec/cleanup.js | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/exec/cleanup.js b/exec/cleanup.js
index a6cf94ec62..c2adb4071b 100644
--- a/exec/cleanup.js
+++ b/exec/cleanup.js
@@ -38,12 +38,19 @@ const file_list = [
 	{ dir: system.ctrl_dir, file: "pnet.dab", desc: "PostLink network call-out times (unused)" },
 	{ dir: system.ctrl_dir, file: "qnet.dab", desc: "QWK network call-out times (migrated to time.ini)" },
 	{ dir: system.ctrl_dir, file: "time.dab", desc: "Timed-event execution times (migrated to time.ini)" },
-	{ dir: system.data_dir + backslash("dirs"), file: "*.ixb", desc: "Filebase indexes (migrated to *.sid)" },
-	{ dir: system.data_dir + backslash("dirs"), file: "*.dat", desc: "Filebase data (migrated to *.shd)" },
-	{ dir: system.data_dir + backslash("dirs"), file: "*.exb", desc: "Filebase extended descriptions (migrated to *.sdt)" },
-	{ dir: system.data_dir + backslash("dirs"), file: "*.dab", desc: "Filebase metadata (migrated to *.ini)" },
 ];
 
+var data_dir = {};
+for(var i in file_area.dir)
+	data_dir[file_area.dir[i].data_dir] = true;
+
+for(var i in data_dir) {
+	file_list.push( { dir: i, file: "*.ixb", desc: "Filebase indexes (migrated to *.sid)" } );
+	file_list.push( { dir: i, file: "*.dat", desc: "Filebase data (migrated to *.shd)" } );
+	file_list.push( { dir: i, file: "*.exb", desc: "Filebase extended descriptions (migrated to *.sdt)" } );
+	file_list.push( { dir: i, file: "*.dab", desc: "Filebase metadata (migrated to *.ini)" } );
+}
+
 for(var i in system.node_list) {
 	file_list.push( { dir: system.node_list[i].dir, file: "node.cnf", desc: "Node configuration settings (migrated to node.ini" } );
 	file_list.push( { dir: system.node_list[i].dir, file: "dsts.dab", desc: "Daily system statistics (migrated to dsts.ini)" } );
@@ -55,7 +62,7 @@ for(var i in file_list) {
 	var path = item.dir + item.file;
 	var count = directory(path).length;
 	if(count < 1) {
-		print(path + format(" (%s)", item.desc) + " does not exist");
+		if(!quiet) print(path + format(" (%s)", item.desc) + " does not exist");
 		continue;
 	}
 	var multi = count > 1 ? format(" (%u files)", count) : "";
-- 
GitLab