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