Juan Batiz-Benet
3352aeee15
cmds2: fixed show help on root + noncallable
2014-11-14 03:20:02 -08:00
Juan Batiz-Benet
f738e899c2
cmd2: simplified main
...
Attention @maybebtc @mappum
I cleaned up + simplified the main flow. Now, all printing
is contained inside main itself! (:cheer:). I do this with
the help of a cmdInvocation struct that has both
a Parse and Run. The only major clunkiness left is that the
"CallCommand" is still its own function. But *shrug*.
Please test it works as we would expect. i changed much of
the flow, so likely that i missed a complicated edge case.
main roadmap:
- parse the commandline to get a cmdInvocation
- if user requests, help, print it and exit.
- run the command invocation
- output the response
- if anything fails, print error, maybe with help
2014-11-14 03:20:02 -08:00
Matt Bell
3e7592f2cc
commands/cli: Sort options by length when generating options helptext
2014-11-14 03:20:02 -08:00
Matt Bell
e41f861f8a
commands/cli: Added some TODOs to Parse
2014-11-14 03:20:02 -08:00
Juan Batiz-Benet
b836e72aea
cmd2 align arguments properly
2014-11-14 03:20:00 -08:00
Juan Batiz-Benet
c0b3b43773
cmds2/helptext moved indent + tagline in subcmd
2014-11-14 03:20:00 -08:00
Matt Bell
80d743541e
commands/cli: Fixed spacing error
2014-11-14 03:20:00 -08:00
Juan Batiz-Benet
ef4480fe6d
cmds/config: better help text
2014-11-14 03:20:00 -08:00
Juan Batiz-Benet
fc7c199d6a
cmds/helptext: indent + newlines + synopsis
2014-11-14 03:20:00 -08:00
Matt Bell
8aa532fbc9
commands/cli: Less line breaks in autogenerated formatting
2014-11-14 03:20:00 -08:00
Juan Batiz-Benet
c25bf522d6
newline in short helptext
2014-11-14 03:19:59 -08:00
Matt Bell
47987f5df5
commands/cli: Transitionary commit - Generate helptext from HelpText fields if they aren't empty
2014-11-14 03:19:59 -08:00
Matt Bell
93c69a83e8
commands/cli: Added short help text function
2014-11-14 03:17:41 -08:00
Matt Bell
4970d8b5a3
commands/cli: Use template for helptext generation
2014-11-14 03:17:41 -08:00
Brian Tiger Chow
f5973b5565
add urgent todo. fix before merge
2014-11-14 03:17:41 -08:00
Matt Bell
7666f8880c
commands: Allow overriding helptext sections with hand-written strings
2014-11-14 03:17:41 -08:00
Matt Bell
e14471f5e8
commands/cli: Use better variable name for parseArgs value index
2014-11-14 03:17:40 -08:00
Matt Bell
5481230679
commands/cli: Use better temp variable names in Parse
2014-11-14 03:17:40 -08:00
Matt Bell
f48ce10efb
commands/cli: Added comment to explain multiple root support in Parse
2014-11-14 03:17:40 -08:00
Matt Bell
eebb43753b
commands: Added list of option definitions to Request, so Option can lookup values by all aliases
2014-11-14 03:17:37 -08:00
Matt Bell
3255bb02d1
commands/cli: Output command path in Parse
2014-11-14 03:17:34 -08:00
Matt Bell
c827573e32
commands/cli: Helptext spacing fix for root command output
2014-11-14 03:17:33 -08:00
Matt Bell
c169fca5a2
commands/cli: Added a helptext generator
2014-11-14 03:17:33 -08:00
Matt Bell
cb72868ab4
commands: Fixed parser argument bug (TODO: better test coverage for command parsers)
2014-11-14 03:17:28 -08:00
Matt Bell
1ee6c7e5f2
commands/cli: Fixed arg parse bug
2014-11-14 03:17:27 -08:00
Matt Bell
48c108d523
commands/cli: Made Parse return the resolved subcommand, even on error
2014-11-14 03:17:27 -08:00
Matt Bell
37f05a8bf6
commands: Ensure argument parsing maintains total argument count, so that argument validation will fail if there are too many
2014-11-14 03:17:27 -08:00
Matt Bell
116041c5ec
commands: Fixed argument value/definition mapping
2014-11-14 03:17:26 -08:00
Matt Bell
068e10cc5d
commands/cli: Better comment for parsePath
2014-11-04 02:04:50 -08:00
Matt Bell
75649f3d49
commands: Moved argument checking into a Command method, fail early when parsing commands
2014-11-04 02:04:49 -08:00
Matt Bell
dbeffb6a0b
commands: CLI Parse: Don't parse args until after creating request
2014-11-04 02:04:49 -08:00
Matt Bell
2c8fc8564c
commands/cli: Made parser handle variadic arguments
2014-11-04 02:04:49 -08:00
Matt Bell
ee2c76992a
commands/cli: Open argument files when creating Requests (Moved out of HTTP client)
2014-11-04 02:04:48 -08:00
Matt Bell
3a8d60cc61
commands: Removed inpout stream from Request
2014-11-04 02:04:48 -08:00
Matt Bell
827f1dd0b0
commands: Changed Request arguments to a []interface{}
2014-11-04 02:04:48 -08:00
Matt Bell
30e968754e
commands/cli: Error if no subcommand matched
2014-11-04 02:04:48 -08:00
Matt Bell
c0d3edd4f9
commands/cli: Made Parse handle multiple root commands
2014-11-04 02:04:47 -08:00
Matt Bell
6302356e15
commands: Fixed tests
2014-11-04 02:04:46 -08:00
Matt Bell
81f29257a1
commands: Gave Requests a reference to the command they are being called on
2014-11-04 02:04:46 -08:00
Juan Batiz-Benet
184c25430b
go-vet friendly codebase
...
- distinguish log.Error and log.Errorf functions
- Initialize structs with field names
- A bit of unreachable code (defers)
2014-10-25 03:46:39 -07:00
Matt Bell
12a6a87b2c
commands/cli: Made Parse return a Request (again)
2014-10-21 18:27:05 -07:00
Matt Bell
dd81bf630f
commands: Fixed tests
2014-10-21 18:07:49 -07:00
Matt Bell
71ff571ecf
commands/cli: Made Parse return component fields instead of a Request
2014-10-20 17:02:25 -07:00
Juan Batiz-Benet
b10fc2cc50
turned req + res into interfaces
2014-10-20 11:49:07 -07:00
Juan Batiz-Benet
4986600e54
parsePath no err
2014-10-20 08:00:28 -07:00
Juan Batiz-Benet
92528ba764
Sub -> Subcommand
2014-10-20 07:55:23 -07:00
Juan Batiz-Benet
7673ce6f65
fmt, lint, + vet commands/
2014-10-20 07:53:14 -07:00
Matt Bell
a9fa767b09
commands/cli: Added test for detecting duplicate options
2014-10-20 07:04:55 -07:00
Matt Bell
117af86ca7
commands/cli: Error if there are duplicate values for an option
2014-10-20 07:04:55 -07:00
Matt Bell
b48b12e425
commands/cli: Fixed test for new parsing
2014-10-20 07:04:55 -07:00