|
- #!/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()
|