mirror of
https://github.com/holub/mame
synced 2025-05-01 04:06:58 +03:00
35 lines
878 B
Lua
35 lines
878 B
Lua
local sql = require("lsqlite3")
|
|
local datfile = {}
|
|
local db
|
|
|
|
function check_db(msg)
|
|
if db:errcode() > sqlite3.OK then
|
|
io.stderr:write("Error: " .. msg .. " (" .. db:errcode() .. " - " .. db:errmsg() .. ")\n")
|
|
end
|
|
end
|
|
|
|
do
|
|
local dbpath = lfs.env_replace(mame_manager:ui():options().entries.historypath:value():match("([^;]+)"))
|
|
db = sql.open(dbpath .. "/history.db")
|
|
if not db then
|
|
lfs.mkdir(dbpath)
|
|
db = sql.open(dbpath .. "/history.db")
|
|
check_db("opening database")
|
|
end
|
|
end
|
|
|
|
if db then
|
|
local found = false
|
|
db:exec("select * from sqlite_master where name = 'version'", function() found = true return 0 end)
|
|
check_db("checking for 'version' table")
|
|
if not found then
|
|
db:exec([[
|
|
CREATE TABLE version (
|
|
version VARCHAR NOT NULL,
|
|
datfile VARCHAR UNIQUE NOT NULL)]])
|
|
check_db("creating 'version' table")
|
|
end
|
|
end
|
|
|
|
return function() return db, sql end
|