Mercurial > prosody-hg
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)); |
