efl/src/scripts/elua/apps/docgen/util.lua

51 lines
1015 B
Lua

local cutil = require("cutil")
local ffi = require("ffi")
local M = {}
local doc_root, root_ns
local path_sep, rep_sep = "/", "\\"
if ffi.os == "Windows" then
path_sep, rep_sep = rep_sep, path_sep
end
M.path_join = function(...)
return (table.concat({ ... }, path_sep):gsub(rep_sep, path_sep))
end
M.path_to_nspace = function(p)
return p:gsub(rep_sep, ":"):gsub(path_sep, ":"):lower()
end
M.nspace_to_path = function(ns)
return ns:gsub(":", path_sep):gsub(rep_sep, path_sep):lower()
end
M.make_page = function(path, ext)
return M.path_join(doc_root, path .. "." .. ext)
end
M.get_root_ns = function()
return root_ns
end
M.mkdir_r = function(dirn)
assert(cutil.file_mkpath(M.path_join(doc_root, dirn)))
end
M.mkdir_p = function(path)
M.mkdir_r(path:match("(.+)" .. path_sep .. "([^" .. path_sep .. "]+)"))
end
M.rm_root = function()
cutil.file_rmrf(doc_root)
end
M.init = function(root, rns)
doc_root = root:gsub(rep_sep, path_sep)
root_ns = rns
end
return M