comparison util/datamanager.lua @ 5246:eba55873ef29

Merge 0.9->trunk
author Kim Alvefur <zash@zash.se>
date Sat, 15 Dec 2012 05:35:43 +0100
parents 775d98184acf
children 6d8ec8c90240
comparison
equal deleted inserted replaced
5242:b86172b12912 5246:eba55873ef29
111 host = (host and encode(host)) or "_global"; 111 host = (host and encode(host)) or "_global";
112 username = username and encode(username); 112 username = username and encode(username);
113 if username then 113 if username then
114 if create then mkdir(mkdir(mkdir(data_path).."/"..host).."/"..datastore); end 114 if create then mkdir(mkdir(mkdir(data_path).."/"..host).."/"..datastore); end
115 return format("%s/%s/%s/%s.%s", data_path, host, datastore, username, ext); 115 return format("%s/%s/%s/%s.%s", data_path, host, datastore, username, ext);
116 elseif host then 116 else
117 if create then mkdir(mkdir(data_path).."/"..host); end 117 if create then mkdir(mkdir(data_path).."/"..host); end
118 return format("%s/%s/%s.%s", data_path, host, datastore, ext); 118 return format("%s/%s/%s.%s", data_path, host, datastore, ext);
119 else
120 if create then mkdir(data_path); end
121 return format("%s/%s.%s", data_path, datastore, ext);
122 end 119 end
123 end 120 end
124 121
125 function load(username, host, datastore) 122 function load(username, host, datastore)
126 local data, ret = envloadfile(getpath(username, host, datastore), {}); 123 local data, ret = envloadfile(getpath(username, host, datastore), {});
341 return true 338 return true
342 end 339 end
343 340
344 function purge(username, host) 341 function purge(username, host)
345 local host_dir = format("%s/%s/", data_path, encode(host)); 342 local host_dir = format("%s/%s/", data_path, encode(host));
346 local deleted = 0;
347 local errs = {}; 343 local errs = {};
348 for file in lfs.dir(host_dir) do 344 for file in lfs.dir(host_dir) do
349 if lfs.attributes(host_dir..file, "mode") == "directory" then 345 if lfs.attributes(host_dir..file, "mode") == "directory" then
350 local store = decode(file); 346 local store = decode(file);
351 local ok, err = do_remove(getpath(username, host, store)); 347 local ok, err = do_remove(getpath(username, host, store));