122 lines
3.2 KiB
Plaintext
Executable File
122 lines
3.2 KiB
Plaintext
Executable File
#!/usr/bin/env lua
|
|
-------------------------------------------------------------------------------
|
|
-- LuaDoc launcher.
|
|
-- @release $Id: luadoc.lua.in,v 1.1 2008/02/17 06:42:51 jasonsantos Exp $
|
|
-------------------------------------------------------------------------------
|
|
|
|
require "luadoc"
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Print version number.
|
|
|
|
local function print_version ()
|
|
print (string.format("%s\n%s\n%s",
|
|
luadoc._VERSION,
|
|
luadoc._DESCRIPTION,
|
|
luadoc._COPYRIGHT))
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Print usage message.
|
|
|
|
local function print_help ()
|
|
print ("Usage: "..arg[0]..[[ [options|files]
|
|
Generate documentation from files. Available options are:
|
|
-d path output directory path
|
|
-t path template directory path
|
|
-h, --help print this help and exit
|
|
--noindexpage do not generate global index page
|
|
--nofiles do not generate documentation for files
|
|
--nomodules do not generate documentation for modules
|
|
--doclet doclet_module doclet module to generate output
|
|
--taglet taglet_module taglet module to parse input code
|
|
-q, --quiet suppress all normal output
|
|
-v, --version print version information]])
|
|
end
|
|
|
|
local function off_messages (arg, i, options)
|
|
options.verbose = nil
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Process options. TODO: use getopts.
|
|
-- @class table
|
|
-- @name OPTIONS
|
|
|
|
local OPTIONS = {
|
|
d = function (arg, i, options)
|
|
local dir = arg[i+1]
|
|
if string.sub (dir, -2) ~= "/" then
|
|
dir = dir..'/'
|
|
end
|
|
options.output_dir = dir
|
|
return 1
|
|
end,
|
|
t = function (arg, i, options)
|
|
local dir = arg[i+1]
|
|
if string.sub (dir, -2) ~= "/" then
|
|
dir = dir..'/'
|
|
end
|
|
options.template_dir = dir
|
|
return 1
|
|
end,
|
|
h = print_help,
|
|
help = print_help,
|
|
q = off_messages,
|
|
quiet = off_messages,
|
|
v = print_version,
|
|
version = print_version,
|
|
doclet = function (arg, i, options)
|
|
options.doclet = arg[i+1]
|
|
return 1
|
|
end,
|
|
taglet = function (arg, i, options)
|
|
options.taglet = arg[i+1]
|
|
return 1
|
|
end,
|
|
}
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
local function process_options (arg)
|
|
local files = {}
|
|
local options = require "luadoc.config"
|
|
local i = 1
|
|
while i <= #arg do
|
|
local argi = arg[i]
|
|
if string.sub (argi, 1, 1) ~= '-' then
|
|
table.insert (files, argi)
|
|
else
|
|
local opt = string.sub (argi, 2)
|
|
if string.sub (opt, 1, 1) == '-' then
|
|
opt = string.gsub (opt, "%-", "")
|
|
end
|
|
if OPTIONS[opt] then
|
|
if OPTIONS[opt] (arg, i, options) then
|
|
i = i + 1
|
|
end
|
|
else
|
|
options[opt] = 1
|
|
end
|
|
end
|
|
i = i+1
|
|
end
|
|
return files, options
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Main function. Process command-line parameters and call luadoc processor.
|
|
|
|
function main (arg)
|
|
-- Process options
|
|
local argc = #arg
|
|
if argc < 1 then
|
|
print_help ()
|
|
return
|
|
end
|
|
local files, options = process_options (arg)
|
|
return luadoc.main(files, options)
|
|
end
|
|
|
|
main(arg)
|