Commit Graph

57 Commits

Author SHA1 Message Date
Alex Flint 5fb236a65d fix bracketing for non-required positionals 2022-02-09 06:31:34 -08:00
Alex Flint 7cc8da61cf simplify the error string logic 2021-05-09 14:01:08 -07:00
Alex Flint c9b504edc1 add FailSubcommand, WriteUsageForSubcommand, WriteHelpForSubcommand 2021-05-09 13:55:34 -07:00
Alex Flint fe4a138ac8 test coverage 100% !! 2021-04-19 21:03:43 -07:00
Alex Flint 9949860eb3 change "kind" to "cardinality", add support for maps to parser 2021-04-19 13:21:04 -07:00
Alex Flint f4eb7f3a58
Merge pull request #137 from alexflint/optional-long
Optional long names
2021-04-16 21:03:14 -07:00
LeoZhan 4f2ab5c009 refactor: remove unused function 2021-04-08 00:20:56 +08:00
Alex Flint 788c166025 test that short-only options are printed first in the help message 2021-01-31 19:15:49 -08:00
Andrew Morozko 438a91dba1 Skip right column if the left is empty 2020-12-20 03:51:33 +03:00
Andrew Morozko faebd3e0f2 Optional long arguments 2020-12-20 02:54:03 +03:00
Denys Vitali d4bb56e096 feat(usage): Include env variable in usage 2020-06-03 10:05:20 +02:00
Dylan Allbee c24567c12e Fix lint warnings 2020-01-25 11:53:34 -08:00
Dylan Allbee 5df19ebe00 Use command passed into p.Parse(...) write methods
It is currently impossible to programatically write help and usage
messages for subcommands, due to parser.WriteHelp and parser.WriteUsage
not taking the state of the parser into account.

Check for the existence of p.lastCmd and use it for the writers when
available.

Enables ability to write unit tests for subcommand help.
2020-01-25 11:53:34 -08:00
Dylan Allbee 338e831a84 Print global options in help for subcommands
fixes #101
2020-01-25 11:53:34 -08:00
Marco Molteni 9f5522668a address review comments 2020-01-23 16:35:45 +01:00
Marco Molteni cfd894f446 usage: if the program supports subcommands, mention it 2020-01-19 19:40:53 +01:00
Andrew Morozko c3a019cdb8 Various changes 2019-11-30 00:22:21 +03:00
Andrew Morozko 904e039267 Added the "dataname" tag 2019-11-29 22:33:16 +03:00
Alex Flint cc768447a7 store default values during NewParser 2019-10-19 23:23:32 -07:00
Alex Flint 990e87d80d no need to initialize nil structs during path traversal 2019-05-03 16:32:16 -07:00
Alex Flint 3c5e61a292 simplify Fprint call 2019-05-03 15:50:41 -07:00
Alex Flint b83047068d print help and usage at subcommand level if necessary 2019-05-03 15:49:44 -07:00
Alex Flint 15bf383f1d add subcommands to usage string 2019-05-03 15:02:10 -07:00
Alex Flint af12b7cfc2 introduced path struct 2019-04-30 13:30:23 -07:00
Alex Flint ddec9e9e4f rename get/settable to readable/writable 2019-04-30 11:40:11 -07:00
Alex Flint f282f71f26 minor reformat 2019-04-30 11:16:01 -07:00
Alex Flint e2dda40825 all tests passing again 2019-04-14 19:50:17 -07:00
Alex Flint b8678d4045 refactor validation 2019-04-14 18:00:40 -07:00
Wlazlo, Matt d4cc703210 Custom parsers implementing encoding.TextMarshaler() can have default values printed via --help 2018-04-13 14:46:24 +10:00
Mario Hros 58e62faa3d required positional args 2017-03-30 20:32:39 +02:00
Mario Hros 9173d259ef nicer usage output 2017-03-08 20:44:01 +01:00
Emmanouil "Manolis" Maragkakis 9030aa1348 print description in help message, not in usage 2017-02-08 11:41:07 -05:00
Emmanouil "Manolis" Maragkakis db27431153 add support for description string 2017-01-23 20:41:12 -05:00
Alex Flint c453aa1a28 add support for version string 2016-09-08 21:18:19 -07:00
Fredrik Wallgren e71d6514f4
Print defaults for multiples
Check if the default value supplied is a slice and not nil, if so
print the list of values supplied.
Test case for slice argument with and without default values.
Default values for slices was not printed because slice is not
comparable, but the zero value for slices is nil.
2016-03-06 21:07:01 +01:00
Alex Flint aaae1550b7 Merge pull request #32 from alexflint/override_program_name
make it possible to override the name of the program
2016-02-22 06:39:41 -08:00
Alex Flint e389d7f782 add support for IP address, email address, and MAC address 2016-01-23 20:49:57 -08:00
Alex Flint b1ec8c9093 make it possible to override the name of the program 2016-01-18 10:31:01 -08:00
Alex Flint 4197d283e4 extract common colWidth constant 2016-01-18 08:24:21 -08:00
Alex Flint 77be03b907 resolve merge 2016-01-18 08:19:10 -08:00
Alex Rakoczy e4e9e19427 Fix error when printing usage for multi-value arguments
We try to compare []strings, which are uncomparable types:

`panic: runtime error: comparing uncomparable type []string`
2015-12-04 09:59:13 -05:00
Fredrik Wallgren 670c7b787d
Fix merge conflicts 2015-11-22 01:06:44 +01:00
brettlangdon d45bd4523c Display help text for positional arguments 2015-11-21 18:59:40 -05:00
Fredrik Wallgren b0d37d1fb2 Add default values to usage
Check if the value isn't it's zero value and if not add a default value
to the usage text.
2015-11-22 00:53:29 +01:00
Fredrik Wallgren 330a0da571
Add built ins to options in help output
Adds help to the options in help output with an easy way to add more
built ins.
2015-11-16 13:23:58 +01:00
Alex Flint c4704194de Merge pull request #14 from walle/usage_on_stderr_bug
Fix bug with error not being written to stderr
2015-11-11 09:34:05 -08:00
Fredrik Wallgren d6a447ed7c
Fix lint warning 2015-11-11 14:08:28 +01:00
Fredrik Wallgren df17f4df45
Fix bug with error not being written to stderr
Only the usage message was written to stderr, the error was written with
the standard fmt.Println.
2015-11-11 10:29:01 +01:00
Alex Flint a49bba8533 Merge pull request #10 from walle/fail_to_stderr
Write usage message to stderr on error
2015-11-09 10:04:37 -08:00
Fredrik Wallgren 935b2a1bd5
Write usage message to stderr on error
When the parsing of parameters/flags fails eg. when a required flag is
missing, print the usage statement and error to stderr instead of
stdout.
2015-11-09 10:27:15 +01:00