Matt Bell
761392d8de
commands/cli: Only allow recursive paths if -r option definition is OptionRecursivePath
2014-11-19 00:26:53 -08:00
Matt Bell
aa84f69231
commands: Added a 'Definition()' method to OptionValue to get a reference to the option definiton
2014-11-19 00:26:02 -08:00
Matt Bell
bbf3a1f4d4
commands: Changed Option to an interface
2014-11-19 00:24:55 -08:00
Matt Bell
277ba26120
commands: Gave global options exported names
2014-11-19 00:01:03 -08:00
Matt Bell
2855a6eed7
commands/cli: Allow option blobs before command path
2014-11-18 06:56:45 -08:00
Juan Batiz-Benet
f43954fcd1
ensure node constructed is online for daemon
2014-11-18 05:20:04 -08:00
Matt Bell
8968b98cf3
commands: Added tests for Request#SetOptions
2014-11-18 02:13:57 -08:00
Matt Bell
c19bdf18b2
commands: Added Request#SetOptions
2014-11-18 02:13:57 -08:00
Matt Bell
57c48adfcf
commands/http: Made MultiFileReader thread safe
2014-11-18 02:13:57 -08:00
Matt Bell
6681c50371
commands/cli: Decomposed 'parseArgs'
2014-11-18 02:13:57 -08:00
Matt Bell
c14bd98f7a
commands/http: Added MultiFileReader test
2014-11-18 02:13:57 -08:00
Matt Bell
c904e6c46d
commands: Added File tests
2014-11-18 02:13:57 -08:00
Matt Bell
8900229579
commands/http: Made MultiFileReader#Read more readable
2014-11-18 02:13:56 -08:00
Matt Bell
c9abc6b546
commands/http: Documented MultiFileReader
2014-11-18 02:13:56 -08:00
Matt Bell
c598673b4c
commands/http: Documented MultiFileReader
2014-11-18 02:13:56 -08:00
Matt Bell
5614234d1d
commands/http: MultiFileReader: Removed extraneous condition when checking next file
2014-11-18 02:13:56 -08:00
Matt Bell
a9d784cb21
commands: Documented File and implementations
2014-11-18 02:13:56 -08:00
Matt Bell
380337b76b
commands/cli: Use filepath.Join for file path building
2014-11-18 02:13:56 -08:00
Matt Bell
015bd06cff
commands/cli: Fixed stdin arg handling
2014-11-18 02:13:56 -08:00
Matt Bell
0b509098aa
commands: Fixed tests
2014-11-18 02:13:55 -08:00
Matt Bell
d4ac442838
commands/cli: Fixed Parse required argument check
2014-11-18 02:13:55 -08:00
Matt Bell
ce49541f13
commands/http: Ignore mediatype validation (only required for file args)
2014-11-18 02:13:55 -08:00
Matt Bell
9333c504c1
commands/cli,http: Make sure required file arguments are provided
2014-11-18 02:13:55 -08:00
Matt Bell
bc8a97c119
commands: Cleanup up argument validation
2014-11-18 02:13:55 -08:00
Matt Bell
f8be26810a
commands: Changed Request#Arguments to a []string
2014-11-18 02:13:55 -08:00
Matt Bell
9dcf21673d
commands: Fail earlier for arg count checking (by doing it in CLI req parser)
2014-11-18 02:13:55 -08:00
Matt Bell
51bfe06f1a
commands/http: Support recursive multipart in MultiFileReader
2014-11-18 02:13:54 -08:00
Matt Bell
9d2ee4f1d4
commands/cli: Support directory argfile arguments in Parse
2014-11-18 02:13:54 -08:00
Matt Bell
ae33905ccd
commands: Added global -r/--recursive flag
2014-11-18 02:13:54 -08:00
Matt Bell
f22ac196bb
commands: Added Recursive modifier to Argument
2014-11-18 02:13:54 -08:00
Matt Bell
bfc83bd16a
commands: Added SetArguments/SetFiles to Request
2014-11-18 02:13:54 -08:00
Matt Bell
4ba7408363
commands: Don't error on file arg checking (for now)
2014-11-18 02:13:54 -08:00
Matt Bell
3a9a62eb0e
commands/cli: Open file paths when parsing and use in request.Files()
2014-11-18 02:13:53 -08:00
Matt Bell
132e740257
commands/http: Send req.Files() as multipart
2014-11-18 02:13:53 -08:00
Matt Bell
53735263c2
commands/http: Parse multipart files into req.Files()
2014-11-18 02:13:53 -08:00
Matt Bell
4b9fa9c97c
commands/http: Use constants for header names
2014-11-18 02:13:53 -08:00
Matt Bell
1c8d73f9ea
commands: Added Request#Files()
2014-11-18 02:13:53 -08:00
Matt Bell
fdb71eb5dc
commands: Added MultiFileReader (read a File as multipart data)
2014-11-18 02:13:53 -08:00
Matt Bell
02c7c329aa
commands: Added File interface and implementations
2014-11-18 02:13:53 -08:00
Juan Batiz-Benet
45cc33b1ff
Merge pull request #354 from chriscool/improve_help_messages
...
Improve help messages
2014-11-17 14:25:39 -08:00
Christian Couder
288ee753c0
Remove 'SYNOPSIS' from short help text
...
It takes some space and it looks like it
applies to the description too.
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2014-11-17 21:08:56 +01:00
Matt Bell
abb8374d43
commands: NewRequest: Documented error case
2014-11-17 00:00:16 -08:00
Matt Bell
3c5bfcec31
commands: Fixed tests
2014-11-16 18:07:56 -08:00
Matt Bell
5e16dfb111
commands: Improved option conversin error message
2014-11-16 18:05:13 -08:00
Matt Bell
d1c50972f5
commands: Check for option errors when constructing Requests
2014-11-16 18:01:06 -08:00
Juan Batiz-Benet
589851fb4e
cmds: root: fix '--help' notice for subcmds
2014-11-15 09:04:49 -08:00
Matt Bell
2b6b6fac00
commands: Added a flag to enable stdin arguments
2014-11-14 03:20:11 -08:00
Matt Bell
9370740db0
commands/cli: Fixed bug when parsing args for a command that doesn't have any argument definitions
2014-11-14 03:20:11 -08:00
Matt Bell
00b19f8876
commands/cli: Take an optional Stdin value in Parse (read as a reader argument or string argument)
2014-11-14 03:20:11 -08:00
Matt Bell
231960e726
commands/http: Fixed client erroring on nil command output
2014-11-14 03:20:11 -08:00
Brian Tiger Chow
ef0826acd6
fix(commands/err)
...
I didn't know there were dragons here.
When casting errors we've gotta be careful. Apparently both values and
pointers satisfy the error interface. Type checking for one doesn't
catch the other.
cc @whyrusleeping @mappum @jbenet
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:07 -08:00
Brian Tiger Chow
ca2828f33c
feat(commands) add ClientError(msg) helper and use it to return a fancy error to the client in the tour
...
@jbenet this exists now
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:07 -08:00
Matt Bell
db361d9403
commands/cli: Made Parse return an error if request has unrecognized options
2014-11-14 03:20:06 -08:00
Juan Batiz-Benet
047d2e2d62
cmd2: Marshaller -> Marshaler (see golang/encoding)
...
Also:
- map[cmds.EncodingType]cmds.Marshaller -> MarshalMap
cc @mappum @maybebtc
2014-11-14 03:20:05 -08:00
Matt Bell
3b407c705d
commands: Ensure command output is correct type (if cmd.Type is set), resolves #321
2014-11-14 03:20:05 -08:00
Juan Batiz-Benet
81b3680908
cmds2: aligned subcmd text
2014-11-14 03:20:05 -08:00
Matt Bell
646920b0dd
commands: Got rid of old helptext fields, use HelpText struct fields in helptext generator
2014-11-14 03:20:05 -08:00
Brian Tiger Chow
e6c5fc250c
docs(commands) todo
...
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:04 -08:00
Brian Tiger Chow
562500491f
test(commands/parse) take args instead of cmd for easier testing
...
@mappum
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:04 -08:00
Matt Bell
28306a49c4
commands/cli,http: Properly preserve argument value count when checking argument validity
2014-11-14 03:20:04 -08:00
Brian Tiger Chow
27b9aec370
style(commands/cli/helptext) use helper function to cut down on
...
boilerplate
I know you'll love this one @mappum
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:04 -08:00
Brian Tiger Chow
5a9de188d7
fix(commands/request) return err when unable to load config/node due to
...
nil function
cc @jbenet @mappum
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:04 -08:00
Matt Bell
9afb85714a
commands/cli: Don't return root in Parse
2014-11-14 03:20:03 -08:00
Juan Batiz-Benet
7daf888902
cmds2: handle error return codes
2014-11-14 03:20:03 -08:00
Juan Batiz-Benet
d18902df27
cmds2: changed how the ctx.Node works
2014-11-14 03:20:02 -08:00
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
475f3f485b
commands: Added HelpText struct to organize different help text fields in Commands
2014-11-14 03:19:59 -08:00
Brian Tiger Chow
7116591351
docs(commands/request)
2014-11-14 03:19:59 -08:00
Brian Tiger Chow
192377a852
fix(commands/optionvalue) use the util.ErrCast()
2014-11-14 03:19:59 -08:00
Brian Tiger Chow
c46102cec5
fix(commands/http/handler) check if found
...
@mappum, could you CR this and let me know if I've interpreted the
desired behavior correctly?
2014-11-14 03:19:57 -08:00
Brian Tiger Chow
bff646fb26
fix(commands/optionvalue) don't shadow the return variable
...
NB: return variables are provided for clarity. Otherwise, it's not
entirely clear that the bool is for _found_.
2014-11-14 03:19:57 -08:00
Brian Tiger Chow
3c4f628493
tests(commands/option) test the OptionValue methods
...
TODO add tests for remaning, untested methods.
2014-11-14 03:19:57 -08:00
Brian Tiger Chow
69374b30be
refactor(commands/optionvalue) use
...
@mappum this optionvalue is a really great abstraction. It makes
maintenance super simple!
@jbenet @whyrusleeping
2014-11-14 03:19:57 -08:00
Brian Tiger Chow
71e92dace2
explain(commands/http)
...
we've gotta allow the code to speak for itself. I wouldn't have been
able to safely modify this code without having my hand held. I am but a
lowly programmer with a simple mind.
cc @jbenet @whyrusleeping @mappum
2014-11-14 03:19:57 -08:00
Brian Tiger Chow
9f801561fd
feat(commands) add cast error
2014-11-14 03:19:57 -08:00
Matt Bell
a4e68c241b
commands/http: Get string representations of option values when creating querystring
2014-11-14 03:19:57 -08:00
Juan Batiz-Benet
49792b2362
refactored cast errors to use a util
2014-11-14 03:19:56 -08:00
Matt Bell
81dbb23602
commands: Cleanup Requests after command execution returns
2014-11-14 03:17:43 -08:00
Matt Bell
8c9ee52a93
commands: Fixed value mutation bug in Request#SetOption
2014-11-14 03:17:42 -08:00
Brian Tiger Chow
94e8218be8
add todo
2014-11-14 03:17:42 -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
ea15bd6ffe
docs(commands) amend
2014-11-14 03:17:41 -08:00
Brian Tiger Chow
e6f2de40dc
docs(commands) Type
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
f93b806d21
commands/http: s/lenRequired/numRequired/
2014-11-14 03:17:40 -08:00
Matt Bell
50751617b6
commands: s/j/valueIndex/
2014-11-14 03:17:40 -08:00
Matt Bell
eedc2e9cc7
commands: s/lenRequired/numRequired/
2014-11-14 03:17:40 -08:00