Commit Graph

71 Commits

Author SHA1 Message Date
mpeterv
85809c8ad4 Reorder properties
Move more common properties to the front of property lists,
so that they can be passed as constructor arguments.
E.g.

parser:option "-p" "--port"
   :description "Port number."
   :default "8080"
   :convert(tonumber)

can now be expressed as

parser:option("-p --port", "Port number.", "8080", tonumber)
2015-06-09 22:27:32 +03:00
mpeterv
44fd3b3cb8 Remove 'aliases' property
Allow setting several names using 'name' property instead, e.g.
':name "-f --foo"' instead of ':aliases {"-f", "--foo"}'.

This change breaks documented interface of 0.3.x.
2015-06-09 22:08:16 +03:00
mpeterv
ff9abac990 Allow using multiple constructor arguments for configuring elements
Disable undocumented ability to specify aliases as arguments
for constructors, e.g. parser:option("-f", "--foo"), and instead
order properties and pass constructor arguments to them.
E.g. parser:argument("foo", "A foo that bars") sets argument
name to foo and description to "A foo that bars".

TODO: remove "aliases" property, instead allow setting several
names in one string by separating them using space.
TODO: reorder properties so that most useful ones could be used
as constructor arguments.
2015-06-09 21:56:36 +03:00
mpeterv
476ad19de8 Avoid printing space at the end of line 2015-03-13 15:40:24 +03:00
mpeterv
01cc387863 Spec cleanups 2015-03-13 15:19:33 +03:00
mpeterv
0da90dc597 Print \n instead of \r\n 2015-03-13 15:12:06 +03:00
mpeterv
bd5fd00e6c Custom target should not affect usage and help message generation 2014-08-25 13:51:08 +04:00
mpeterv
b02536d6ba Fixed - being replaced with _ in custom targets
Default argname for options is now default target in brackets
2014-08-25 13:44:26 +04:00
mpeterv
6e02b89b9b Replace - with _ in default target 2014-08-23 11:35:49 +04:00
mpeterv
b8766c8cdf Improved usage message generation
Put options taking variable number of arguments after positional arguments
2014-08-21 15:24:54 +04:00
mpeterv
8c16eca398 Revert autoadding of <> to custom argnames 2014-08-06 13:33:50 +04:00
mpeterv
4b97d03bf5 Added show_default field 2014-08-06 13:02:29 +04:00
mpeterv
59603d5f39 Fixed exploded tests to work with busted 2.0 2014-08-01 17:44:15 +04:00
mpeterv
d1386c1d96 Add brackets to argname automatically
Updated aux files
2014-04-24 21:27:22 +04:00
mpeterv
b42960c0da Added another test 2014-03-09 14:44:19 +04:00
mpeterv
7bf5777413 Added mutually exclusive groups 2014-03-09 14:28:55 +04:00
mpeterv
c605f248ad Better name inference 2014-03-08 16:25:54 +04:00
mpeterv
2d0faa258d Argname can be an array 2014-03-08 16:04:40 +04:00
mpeterv
b4c51e84de Make add_help an actual field 2014-03-02 19:27:37 +04:00
mpeterv
fb1c14ff80 Fixed options receiving arguments after -- 2014-03-02 12:40:16 +04:00
mpeterv
454ef54aa3 Removed :usage() hooks for arguments and options 2014-03-02 11:51:25 +04:00
mpeterv
f24cfe9627 Got rid of :prepare() 2014-03-02 02:03:44 +04:00
mpeterv
db3e21e944 Refactoring: added sanity checks in setters 2014-03-02 00:49:44 +04:00
mpeterv
73467e2836 Fixed usage messages in subcommands corrupted after several usages 2014-03-01 16:41:14 +04:00
mpeterv
8cefeb1ef7 Updated README; use u in defmode as a flag instead of c 2014-03-01 15:05:36 +04:00
mpeterv
d601f54dce Improved usage messages for default values 2014-03-01 14:43:20 +04:00
mpeterv
57f8d46ba3 Reworked default values
* Better out-of-the-box behavior: commonly used feature should work without configuration. Only use default value if argument/option was not used at all.
* Add `defmode` field so that old behaviour can be used, too.
2014-02-28 17:06:07 +04:00
mpeterv
a4b93b0833 Changed actions behaviour
Actions are now just triggers. Actions for arguments and root parser ae removed.
2014-02-26 12:07:53 +04:00
mpeterv
aeacbeb589 Improved error message
Report '1 times' as '1 time'
2014-02-23 16:58:39 +04:00
mpeterv
5c82cb4c2e Added epilog field 2014-02-23 16:44:13 +04:00
mpeterv
7994dded7e Make command required by default 2014-02-23 16:27:23 +04:00
mpeterv
fc65c85a13 Improved command line parsing
The first character after control character is now not required to be a letter
2014-02-23 16:20:55 +04:00
mpeterv
d9fc8728ca Mark entire option as optional if there is default value 2014-02-20 12:52:24 +04:00
mpeterv
3e6dc54201 If an option with a default value is underused, invoke it more 2014-02-20 12:48:51 +04:00
mpeterv
e99e047c4d In usage message, mark arguments as optional if there is a default value 2014-02-20 12:41:27 +04:00
mpeterv
8bc02caae6 Convert can now be a table used as mapping 2014-02-20 12:34:02 +04:00
mpeterv
754788b986 False return from converter is now valid, only nil is signal for error 2014-02-20 12:28:46 +04:00
mpeterv
3a80e0179b :pparse() should still raise an error if it is caused by misconfiguration 2014-02-18 15:35:58 +04:00
mpeterv
a0fe631b08 added a few tests for :pparse() 2014-02-18 15:27:58 +04:00
mpeterv
5b96416ada Minor change in an error message 2014-02-18 14:39:32 +04:00
mpeterv
07af666206 Pad long usage messages
Long usage messages are split into lines. A margin is added so that they line up under "Usage: " part of the message.
2014-02-18 13:28:06 +04:00
mpeterv
ccad58ef50 return Parser as the module 2014-02-17 18:41:09 +04:00
mpeterv
3788b9c1a6 Improved help option behaviour
* Help option is only created once per parser, several :prepare() invocations do not create extra options.
* In :add_help(foo), foo is passed to the help option overriding default name, see spec/help_spec.lua @ 24
2014-02-17 16:58:16 +04:00
mpeterv
4dc73cac35 added a test for multiline descriptions 2014-02-17 15:26:04 +04:00
mpeterv
e7aa042004 Fixed the charset of the current parser being used.
Now the global set of all control characters of all (sub)commands is used.
2014-02-09 00:18:00 +04:00
mpeterv
2a49500a01 added cli test 2014-01-26 19:02:36 +04:00
mpeterv
9ae8df55cc added tests related to help, improved help generation 2014-01-26 17:38:22 +04:00
mpeterv
404ec5213a Added help message generation; Improved optional arguments handling. 2014-01-26 15:21:11 +04:00
mpeterv
d279429896 added tests related to tips; updated README 2014-01-25 14:46:04 +04:00
mpeterv
b1a011c3a8 added tips 2014-01-25 14:45:04 +04:00