Commit Graph
69 Commits
Author SHA1 Message Date
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
mpeterv c0039106f3 fixed tests: all printed data is quoted 2014-01-25 12:47:49 +04:00
mpeterv 09a35998c3 added another test for usage generation 2014-01-25 12:47:49 +04:00