123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #!/usr/bin/env lua
- -------------------------------------------------------------------------------
- -- LuaDoc launcher.
- -- @release $Id: luadoc.lua.in,v 1.1 2008/02/17 06:42:51 jasonsantos Exp $
- -------------------------------------------------------------------------------
- --local source = debug.getinfo(1).source or ""
- --local mypath = source:match("@(.+)/[^/]+")
- --package.path = package.path .. ";" .. mypath .. "/?.lua;" .. mypath .. "/?/init.lua"
- require "luadoc.init"
- -------------------------------------------------------------------------------
- -- 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)
|