Diff

util/datamanager.lua @ 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
parent 11288:5fd1f1b544a0
child 12387:05c250fa335a
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;