Commit Graph

70 Commits

Author SHA1 Message Date
Alex Flint 711618869d fix issue with duplicate fields in embedded structs 2020-01-24 14:30:29 -08:00
Marco Molteni 33db14a48b parse: fix typo in comment 2020-01-19 19:38:19 +01:00
Andrew Morozko c49d847704 Removed "dataname" tag 2019-11-30 00:32:28 +03: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 45d0915afc
Remove %w for compatibility with go<1.13 2019-10-21 11:42:03 -07:00
Alex Flint 84e7a764db minor cleanups 2019-10-19 23:30:33 -07:00
Alex Flint cc768447a7 store default values during NewParser 2019-10-19 23:23:32 -07:00
Alex Flint 0c95297990 add support for default values in struct tags 2019-10-08 16:39:00 -07:00
Alex Flint 233d378a50 fix issue 89 (multiple args terminated by "--") 2019-10-04 13:18:17 -07:00
Alex Flint 9f37d5f600 fix typo 2019-08-06 16:38:11 -07:00
Alex Flint 990e87d80d no need to initialize nil structs during path traversal 2019-05-03 16:32:16 -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 edd1af4667 Merge remote-tracking branch 'origin/master' into subcommand-impl
# Conflicts:
#	parse.go
2019-05-03 13:16:52 -07:00
Alex Flint 3392c173d7 add expected output for usage example 2019-05-03 13:07:12 -07:00
Alex Flint e55b361498 fix error message 2019-05-02 09:50:44 -07:00
Alex Flint 87be2d9790 add unittests for canParse 2019-05-02 09:28:17 -07:00
Alex Flint 39decf197f add several subcommand unittests 2019-04-30 13:49:55 -07:00
Alex Flint a78c6ded26 set subcommand structs to be struct pointers 2019-04-30 13:40:45 -07:00
Alex Flint af12b7cfc2 introduced path struct 2019-04-30 13:30:23 -07:00
Alex Flint 4e977796af add recursive expansion of subcommands 2019-04-30 12:54:28 -07:00
Alex Flint ddec9e9e4f rename get/settable to readable/writable 2019-04-30 11:40:11 -07:00
Alex Flint e2dda40825 all tests passing again 2019-04-14 19:50:17 -07:00
Alex Flint e86673b20a restore process as a free func 2019-04-14 18:24:59 -07:00
Alex Flint b8678d4045 refactor validation 2019-04-14 18:00:40 -07:00
Alex Flint 7b1d9ef23f simplify processing of positionals a little 2019-04-14 17:30:53 -07:00
Illia Volochii 89714b6f48 Fix the problem with errors 2018-05-14 22:18:05 +03:00
Illia Volochii fa5fe315f8 Change format from JSON to CSV 2018-05-01 12:02:44 +03:00
Illia Volochii 75bf1a1525 Fix providing multiple values via environment variables 2018-04-26 21:10:44 +03:00
Alex Flint b9375a2e66 fix repeated text unmarshal bug 2018-04-18 21:51:16 -07:00
Alex Flint 74dd5a2c5a separate scalar.CanParse from isBoolean 2018-04-18 21:33:46 -07:00
Alex Flint 6f2f3b4bf6 drop setScalar 2018-04-18 21:23:08 -07:00
Alex Flint a0df5f3391 handle negative values 2018-01-13 14:20:00 -08:00
Rick d7961941f0 Altered help tag parsing to reduce the constraints on help text content; old behaviour is retained for backward compatibility 2017-10-02 14:18:41 +01:00
Rick fb97335a13 Allow spaces after each comma in tags 2017-09-16 12:05:53 +01:00
Mario Hros 58e62faa3d required positional args 2017-03-30 20:32:39 +02:00
Kenneth Shaw d4c2b35b2e Adding separate tag option
As outlined in #49, there is a need to mimic the behavior of other
applications by interweaving positional and non-positional parameters.

This change adds the 'separate' option that will force a arg of type
[]string to only read the next supplied value.

For example, when dealing with the following arg type:

var MyArgs struct {
    Pos []string `arg:"positional"`
    Separate []string `arg:"-s,separate"`
}

This commit will parse the following command line:

./app pos1 pos2 -s=separate1 -s=separate2 pos3 -s=separate3 pos4

Such that MyArgs.Pos will be [pos1 pos2 pos3 pos4] and MyArgs.Separate
will be [separate1 separate2 separate3].

Unit tests for the above have also been written and are included in this
commit, as well as the addition of a section to README.md and an example
func in example_test.go.

Fixes #49
2017-03-04 09:13:12 +07:00
Alex Flint c4c162448c deal with "-" as option value 2017-02-21 09:08:08 -08:00
Alex Flint 44a8b85d82 deal with booleans correctly 2017-02-15 18:37:19 -08:00
Alex Flint 38c51f4cab put comment back 2017-02-15 18:24:32 -08:00
Alex Flint 6859799559 use go-scalar, vendoring 2017-02-15 18:19:41 -08:00
Alex Flint ec576f9765 fix case where os.Args is empty 2017-02-09 15:12:33 -08:00
Emmanouil "Manolis" Maragkakis db27431153 add support for description string 2017-01-23 20:41:12 -05:00
Alex Flint 12fa37d10d add support for embedded structs 2016-10-10 10:48:28 +10:30
Alex Flint c453aa1a28 add support for version string 2016-09-08 21:18:19 -07:00
Alex Flint 5800b89ce9 fix example function names 2016-07-31 09:14:44 -07:00
Fredrik Wallgren 1488562b1e
Allow override of defaults for slice arguments
This commit fixes a bug where if a multiple value argument (slice) has default
values, the submitted values will be appended to the default. Not
overriding them as expected.
2016-02-29 22:05:26 +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