forked from izaya/OC-PsychOS2
Skye M
56af6d1ade
* Made finddesc.lua execute commands using `sh -c 'command'`, which ensures that Unix-like shell is used instead of cmd.exe * Made finddesc.lua avoid a situation where it would end up with a double '/' in `outpath` * Redirect output of deleting the document to null to avoid pointless "No such file or directory" errors.
61 lines
1.3 KiB
Lua
61 lines
1.3 KiB
Lua
#!/usr/bin/env lua
|
|
local doc = require "lib/doc"
|
|
local tA = {...}
|
|
|
|
local outpath = table.remove(tA,1)
|
|
|
|
print(outpath)
|
|
|
|
local function formatDocs(fd)
|
|
local rs = ""
|
|
for name,finfo in pairs(fd) do
|
|
if rs:len() > 0 then
|
|
rs = rs .. "\n\n"
|
|
end
|
|
local as = ""
|
|
for k,v in pairs(finfo.args) do
|
|
if k > 1 then
|
|
as = as .. ", "
|
|
end
|
|
as = as .. v[1]
|
|
if v[2] then
|
|
as = as .. "^"..v[2].."^"
|
|
end
|
|
end
|
|
local rt = ""
|
|
for k,v in pairs(finfo.outtypes or {}) do
|
|
if rt:len() > 0 then
|
|
rt = rt .. ", "
|
|
else
|
|
rt = ": "
|
|
end
|
|
rt = rt .. v
|
|
end
|
|
rs = string.format("%s## %s(%s)%s\n%s",rs,name,as,rt,finfo.description)
|
|
end
|
|
return rs
|
|
end
|
|
|
|
os.execute("sh -c 'mkdir -p "..outpath .. "'")
|
|
if outpath:sub(#outpath) == "/" then outpath = outpath:sub(1, #outpath - 1) end
|
|
local ad = io.open(outpath.."/apidoc.md","w")
|
|
|
|
for k,v in pairs(tA) do
|
|
local fd = doc.parsefile(v)
|
|
local ds = formatDocs(fd)
|
|
print(string.format("%s: %i",v,ds:len()))
|
|
if ds and ds:len() > 0 then
|
|
os.execute("sh -c 'mkdir -p $(dirname \""..outpath.."/"..v.."\")'")
|
|
local f = io.open(outpath.."/"..v:gsub("%.lua$",".md"),"wb")
|
|
f:write(string.format("# %s\n\n",v))
|
|
f:write(ds)
|
|
f:write("\n\n")
|
|
f:close()
|
|
ad:write(string.format("# %s\n\n",v))
|
|
ad:write(ds)
|
|
ad:write("\n\n")
|
|
end
|
|
end
|
|
|
|
ad:close()
|