Changeset

11369:87105a9a11df

util.datamanager: Support iterating over any file extension The 'typ' argument to all other functions is the actual file extension, but not here for some reason. May need this for iterating over the .bin files created by mod_http_file_share in the future.
author Kim Alvefur <zash@zash.se>
date Sun, 07 Feb 2021 19:23:33 +0100
parents 11368:0bc3acf37428
children 11370:7c2ef5a1ec9c
files util/datamanager.lua
diffstat 1 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/util/datamanager.lua	Sat Feb 06 22:12:38 2021 +0100
+++ b/util/datamanager.lua	Sun Feb 07 19:23:33 2021 +0100
@@ -320,7 +320,7 @@
 }
 
 local function users(host, store, typ) -- luacheck: ignore 431/store
-	typ = type_map[typ or "keyval"];
+	typ = "."..(type_map[typ or "keyval"] or typ);
 	local store_dir = format("%s/%s/%s", data_path, encode(host), store_encode(store));
 
 	local mode, err = lfs.attributes(store_dir, "mode");
@@ -330,9 +330,8 @@
 	local next, state = lfs.dir(store_dir); -- luacheck: ignore 431/next 431/state
 	return function(state) -- luacheck: ignore 431/state
 		for node in next, state do
-			local file, ext = node:match("^(.*)%.([dalist]+)$");
-			if file and ext == typ then
-				return decode(file);
+			if node:sub(-#typ, -1) == typ then
+				return decode(node:sub(1, -#typ-1));
 			end
 		end
 	end, state;