Module pl.lapp
Simple command-line parsing using human-readable specification.
Supports GNU-style parameters.
lapp = require 'pl.lapp'
local args = lapp [[
Does some calculations
-o,--offset (default 0.0) Offset to add to scaled number
-s,--scale (number) Scaling factor
<number> (number ) Number to be scaled
]]
print(args.offset + args.scale * args.number)
Lines begining with '-' are flags; there may be a short and a long name; lines begining wih '' are arguments. Anything in parens after the flag/argument is either a default, a type name or a range constraint.
>See ???
Dependencies: pl.sip
Functions
quit (msg, no_usage) | quit this script immediately. |
error (msg, no_usage) | print an error to stderr and quit. |
open (file, opt) | open a file. |
assert (condn, msg) | quit if the condition is false. |
add_type (name, converter, constraint) | add a new type to Lapp. |
process_options_string (str, args) | process a Lapp options string. |
Fields
show_usage_error | controls whether to dump usage on error. |
Functions
- quit (msg, no_usage)
-
quit this script immediately.
Parameters:
- msg optional message
- no_usage suppress 'usage' display
- error (msg, no_usage)
-
print an error to stderr and quit.
Parameters:
- msg a message
- no_usage suppress 'usage' display
- open (file, opt)
-
open a file.
This will quit on error, and keep a list of file objects for later cleanup.
Parameters:
- file filename
- opt
same as second parameter of
io.open
- assert (condn, msg)
-
quit if the condition is false.
Parameters:
- condn a condition
- msg an optional message
- add_type (name, converter, constraint)
-
add a new type to Lapp. These appear in parens after the value like
a range constraint, e.g. '
(integer) Process PID' if failed. Parameters:
- name name of type
- converter either a function to convert values, or a Lua type name.
- constraint optional function to verify values, should use lapp.error
- process_options_string (str, args)
-
process a Lapp options string.
Usually called as lapp().
Parameters:
- str the options text
- args
a table of arguments (default is
_G.arg
)
Returns:
-
a table with parameter-value pairs