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 beginning with '-'
are flags; there may be a short and a long name;
lines beginning with '<var>'
are arguments. Anything in parens after
the flag/argument is either a default, a type name or a range constraint.
See the Guide
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 string optional message
- no_usage boolean suppress 'usage' display
- error (msg, no_usage)
-
print an error to stderr and quit.
Parameters:
- msg string a message
- no_usage boolean 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:
- assert (condn, msg)
-
quit if the condition is false.
Parameters:
- condn boolean a condition
- msg string message text
- 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' Parameters:
- name string name of type
- converter either a function to convert values, or a Lua type name.
- constraint function optional function to verify values, should use lapp.error if failed. (optional)
- process_options_string (str, args)
-
process a Lapp options string.
Usually called as
lapp()
.Parameters:
Returns:
-
a table with parameter-value pairs