Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ldb3
- -- tiny file DB stored in /data/<db>/<key>
- local ROOT = "/data"
- if not fs.exists(ROOT) then
- fs.makeDir(ROOT)
- end
- local function dbPath(db)
- return ROOT .. "/" .. db
- end
- local function recPath(db, key)
- return dbPath(db) .. "/" .. key
- end
- local function ensure(db)
- local p = dbPath(db)
- if not fs.exists(p) then
- fs.makeDir(p)
- end
- end
- function set(db, key, value)
- ensure(db)
- local h = fs.open(recPath(db, key), "w")
- h.write(textutils.serialize(value))
- h.close()
- end
- function get(db, key, default)
- local p = recPath(db, key)
- if not fs.exists(p) then
- return default
- end
- local h = fs.open(p, "r")
- local raw = h.readAll()
- h.close()
- local ok, val = pcall(textutils.unserialize, raw)
- if ok then
- return val
- else
- return default
- end
- end
- function list(db)
- local p = dbPath(db)
- if not fs.exists(p) then return {} end
- return fs.list(p)
- end
- function del(db, key)
- local p = recPath(db, key)
- if fs.exists(p) then fs.delete(p) end
- end
- function clear(db)
- for _, name in ipairs(list(db)) do
- del(db, name)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment