Comparison

util/datamanager.lua @ 6681:0217a04722c7

util.datamanager: Fix traceback from trying to purge when storage is empty or otherwise unaccessible (fixes #496)
author Kim Alvefur <zash@zash.se>
date Wed, 13 May 2015 21:44:13 +0200
parent 6644:6cb6855f60df
child 6777:5de6b93d0190
child 7200:67ac4a0b6e50
comparison
equal deleted inserted replaced
6680:ae34b12c4335 6681:0217a04722c7
346 return true 346 return true
347 end 347 end
348 348
349 function purge(username, host) 349 function purge(username, host)
350 local host_dir = format("%s/%s/", data_path, encode(host)); 350 local host_dir = format("%s/%s/", data_path, encode(host));
351 local ok, iter, state, var = pcall(lfs.dir, host_dir);
352 if not ok then
353 return ok, iter;
354 end
351 local errs = {}; 355 local errs = {};
352 for file in lfs.dir(host_dir) do 356 for file in iter, state, var do
353 if lfs.attributes(host_dir..file, "mode") == "directory" then 357 if lfs.attributes(host_dir..file, "mode") == "directory" then
354 local store = decode(file); 358 local store = decode(file);
355 local ok, err = do_remove(getpath(username, host, store)); 359 local ok, err = do_remove(getpath(username, host, store));
356 if not ok then errs[#errs+1] = err; end 360 if not ok then errs[#errs+1] = err; end
357 361