remove lfs
This commit is contained in:
parent
ce98d7eaff
commit
14d7f91c03
@ -152,7 +152,6 @@ Dependencies
|
|||||||
=======
|
=======
|
||||||
|
|
||||||
- [pp](https://github.com/luapower/pp)
|
- [pp](https://github.com/luapower/pp)
|
||||||
- [lfs](http://keplerproject.github.io/luafilesystem/)
|
|
||||||
|
|
||||||
All above libraries can be found in [LuaPower](https://luapower.com/).
|
All above libraries can be found in [LuaPower](https://luapower.com/).
|
||||||
|
|
||||||
|
23
flatdb.lua
23
flatdb.lua
@ -1,12 +1,23 @@
|
|||||||
local lfs = require("lfs")
|
|
||||||
local pp = require("pp")
|
local pp = require("pp")
|
||||||
|
|
||||||
local function isFile(path)
|
local function isFile(path)
|
||||||
return lfs.attributes(path, "mode") == "file"
|
local f = io.open(path, "r")
|
||||||
|
if f then
|
||||||
|
f:close()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local function isDir(path)
|
local function isDir(path)
|
||||||
return lfs.attributes(path, "mode") == "directory"
|
local tmp = path.."/"..os.tmpname()
|
||||||
|
local f = io.open(tmp, "w")
|
||||||
|
if f then
|
||||||
|
f:close()
|
||||||
|
os.remove(tmp)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local function load_page(path)
|
local function load_page(path)
|
||||||
@ -38,7 +49,9 @@ local db_funcs = {
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
for p, page in pairs(db) do
|
for p, page in pairs(db) do
|
||||||
store_page(pool[db].."/"..p, page)
|
if not store_page(pool[db].."/"..p, page) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
@ -59,8 +72,8 @@ pool.hack = db_funcs
|
|||||||
return setmetatable(pool, {
|
return setmetatable(pool, {
|
||||||
__mode = "kv",
|
__mode = "kv",
|
||||||
__call = function(pool, path)
|
__call = function(pool, path)
|
||||||
|
assert(isDir(path), path.." is not a directory.")
|
||||||
if pool[path] then return pool[path] end
|
if pool[path] then return pool[path] end
|
||||||
if not isDir(path) then return end
|
|
||||||
local db = {}
|
local db = {}
|
||||||
setmetatable(db, mt)
|
setmetatable(db, mt)
|
||||||
pool[path] = db
|
pool[path] = db
|
||||||
|
Loading…
Reference in New Issue
Block a user