Commit Graph

663 Commits

Author SHA1 Message Date
Matt Bell
6adebfad11 commands: Added Length field to Response
squash! commands: Added Length field to Response

commands/http: client: Fixed error on unset length
2015-01-23 18:29:29 -08:00
Matt Bell
7b4de230eb commands: Refactored Command#Run function signature to (req Request, res Response) 2015-01-23 18:29:29 -08:00
Matt Bell
856d2896a7 commands: Added PreRun function to command 2015-01-23 18:19:40 -08:00
Matt Bell
1281b25105 commands: Added PostRun function, called on the client 2015-01-23 18:19:40 -08:00
Matt Bell
7294f6334a commands: Removed old TODOs 2015-01-23 18:19:39 -08:00
Matt Bell
31ae178078 commands: Support outputting <-chan interface{} 2015-01-21 04:28:02 +00:00
Juan Batiz-Benet
920ddc7fc3 Merge pull request #553 from jbenet/serial-file
Serial File Opening
2015-01-13 23:30:08 -08:00
Matt Bell
78d36230d5 commands/cli: When parsing stdin as string argument, split lines into separate tokens 2015-01-13 22:51:10 -08:00
Matt Bell
dbb5118d76 commands/files: Fixed tests 2015-01-13 22:50:54 -08:00
Matt Bell
f8347f925c commands/files: Made ReaderFile take ReadClosers instead of trying to cast reader to Closer 2015-01-13 22:50:54 -08:00
Matt Bell
a2b3402aa4 commands/http: Fixed package import in tests 2015-01-13 22:50:54 -08:00
Matt Bell
9ba728532f commands/files: Created SerialFile, which opens directory contents serially 2015-01-13 22:50:53 -08:00
Matt Bell
7a579bbf79 commands: Moved files code into 'commands/files' subpackage 2015-01-13 22:50:53 -08:00
Brian Tiger Chow
5b3164de5c refactor(repo/config) move config under repo 2015-01-13 03:09:30 -08:00
Juan Batiz-Benet
322d6d0b05 cmds: use flushCopy instrad of copychunks
@mappum would this work?
2015-01-11 20:52:33 -08:00
Juan Batiz-Benet
ddd7540186 cmds: flush output on standard readers
cc @mappum can we do this for the copyChunks case?
2015-01-11 20:52:33 -08:00
Juan Batiz-Benet
0e2a554c8d cmds: fix error header output
using Header().Set after WriteHeader() has no effect.
cc @mappum
2015-01-11 20:52:33 -08:00
Matt Bell
2816ed038c commands: Fixed panic when marshalers gave nil output 2015-01-06 15:55:18 -08:00
Matt Bell
97a3688429 commands; Fixed tests for Reader output 2015-01-06 15:55:17 -08:00
Matt Bell
0419ce1d20 commands: Removed unused cleanup function 2015-01-06 15:55:17 -08:00
Matt Bell
c2f46b618a commands: Fixed panic on nil output value 2015-01-06 15:55:17 -08:00
Matt Bell
69999bd0a7 commands: Allow commands to output pointers to specified type 2015-01-06 15:53:49 -08:00
Matt Bell
77e5742ac7 commands/http: client: Decode values into a new instance of the output type 2015-01-06 15:53:49 -08:00
Matt Bell
ecc2248aa0 commands/http: client: Fixed decoding values in channel output 2015-01-06 15:53:49 -08:00
Matt Bell
981f793df9 commands: Use a flag to enable streaming channel output 2015-01-06 15:53:48 -08:00
Matt Bell
71838adf49 commands/http: handler: Fixed chunk copier to be able to write response before request is done 2015-01-06 15:53:48 -08:00
Matt Bell
5d3bc652cb commands/http: client: Close output channel on decoder EOF 2015-01-06 15:53:48 -08:00
Matt Bell
0452a5f75e commands: Made default JSON marshaler support channel output 2015-01-06 15:53:48 -08:00
Matt Bell
cf1e770e1e commands/http: Client: decode chunked streaming output 2015-01-06 15:53:48 -08:00
Matt Bell
c3c0b248e8 commands/http: Made Handler stream channel output 2015-01-06 15:53:48 -08:00
Matt Bell
fd40702f73 commands: Changed Marshaler to return a io.Reader instead of a []byte
core/commands: Refactored command marshalers
2015-01-06 15:53:42 -08:00
Juan Batiz-Benet
0395a7af1e ipfs add output not sorted, cmds files sorted
I made the commands lib dir listing sort the contents
so we get the same sequence of files from it repeatably.
2015-01-06 14:02:49 -08:00
Matt Bell
c80a7941d1 commands/cli: Fixed file path formatting on Windows 2014-12-05 20:56:27 -08:00
Matt Bell
5cb39235cc commands/http: Fixed bug with client arg querystring 2014-12-05 20:56:27 -08:00
Matt Bell
4c7a694409 commands/http: Fixed client panic when sending a Request with nil 'Files' 2014-12-05 20:56:27 -08:00
Matt Bell
aaab7d0898 commands/http: Allow API requests from whitelisted origins 2014-11-25 06:12:35 -08:00
Peter Borzov
a76bac0dcc Hotfix: return parsed options if argument parsing failed 2014-11-23 05:56:29 -05:00
Matt Bell
922f84878c commands/cli: Added argument parse tests 2014-11-19 18:30:06 -08:00
Matt Bell
a69ddbb965 commands/cli: Fixed parse bug when optional argument is defined first 2014-11-19 18:29:56 -08:00
Matt Bell
4bd2fbc806 commands/cli: Ignore stdin on Windows 2014-11-19 04:30:29 -08:00
Matt Bell
69ce2940a8 commands/cli: Fixed helptext option type 2014-11-19 00:54:59 -08:00
Matt Bell
ae6f00d766 commands: Fixed tests 2014-11-19 00:36:42 -08:00
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
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
40e96a1fa6 commands: Added Argument helper constructors 2014-11-14 03:17:39 -08:00
Matt Bell
f1fc26e70b commands: Removed a fmt.Println 2014-11-14 03:17:38 -08:00
Matt Bell
a9bd172414 commands: Fixed handling of int/uint option values 2014-11-14 03:17:38 -08:00
Matt Bell
3e507f7c9f commands: Changed option accessor API (Request#Option now returns an OptionValue) 2014-11-14 03:17:38 -08:00
Matt Bell
20591c7e64 commands: Made SetOption override existing values (even if they used a different alias) 2014-11-14 03:17:37 -08:00
Matt Bell
e34a0fd658 commands: Updated tests 2014-11-14 03:17:37 -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
ce28fa363b commands: Fixed tests 2014-11-14 03:17:37 -08:00
Matt Bell
38b31c65f8 commands: Added Option helper constructors 2014-11-14 03:17:37 -08:00
Matt Bell
2029168e98 commands: Made Command run functions return (interface{}, error) instead of setting the values in the response 2014-11-14 03:17:37 -08:00
Matt Bell
f1c788d710 commands/http: Don't set Content-Type for stream outputs so browsers can MIME-sniff the actual content type 2014-11-14 03:17:35 -08:00
Matt Bell
5a18554f6e commands: Fixed tests 2014-11-14 03:17:35 -08:00
Matt Bell
20285ead82 commands: Indent JSON-marshalled Response output 2014-11-14 03:17:34 -08:00
Matt Bell
cdf221078d commands: Fixed tests 2014-11-14 03:17:34 -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
351ed9589a commands: Added 'Description' fields to Command, Argument, Option 2014-11-14 03:17:33 -08:00
Matt Bell
3df5202f8a commands/http: Log incoming requests (with DEBUG log level) 2014-11-14 03:17:30 -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
83cda2e699 commands/http: Fixed arg parse bug 2014-11-14 03:17:27 -08:00
Matt Bell
fecb434ab4 commands: Fixed arg validation bug 2014-11-14 03:17:27 -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
Brian Tiger Chow
de170927ad fix(commands/request) cast safely
should be able to look at a function in isolation and prove it won't
panic. if that's not possible, should cast safely.
2014-11-05 10:15:17 -08:00
Brian Tiger Chow
d3f9aadd3e fix(commands/http/client) cast safely 2014-11-05 10:15:17 -08:00
Matt Bell
1b9b60331f commands/http: Cleaned up argument handling in Parse 2014-11-04 02:04:51 -08:00
Matt Bell
db9c7f7c29 commands: Fixed panic when trying to marshal without a command set in request 2014-11-04 02:04:51 -08:00
Matt Bell
df6c700426 commands/http: Renamed variable for clarity 2014-11-04 02:04:51 -08:00
Matt Bell
c8ae4b6f42 commands/http: Decomposed Client#Send function 2014-11-04 02:04:51 -08:00
Matt Bell
e57cd9b857 commands/http: Use net/url querystring encoder 2014-11-04 02:04:51 -08:00
Matt Bell
33b0990a3a commands/http: Cleaner URL formation in client 2014-11-04 02:04:51 -08:00
Matt Bell
5e5d534eb3 commands/http: Refactored API to a Client object that takes a string address 2014-11-04 02:04:50 -08:00
Matt Bell
2a1116cec8 commands: Allow overriding marshaller for any encoding type 2014-11-04 02:04:50 -08:00
Matt Bell
33ad56e6d0 commands: Safer type coercion when choosing marshaller 2014-11-04 02:04:50 -08:00
Matt Bell
0149f65c6c commands: Replaced 'Formatter' with 'Marshaller' 2014-11-04 02:04:50 -08:00
Matt Bell
068e10cc5d commands/cli: Better comment for parsePath 2014-11-04 02:04:50 -08:00
Matt Bell
958e524c1e commands: Nicer syntax for Argument definition 2014-11-04 02:04:50 -08:00
Matt Bell
f76048f74b commands/http: Unexported Handler fields and created constructor 2014-11-04 02:04:50 -08:00
Matt Bell
4552fce517 commands/http: Respond with error if encoding option isn't a string 2014-11-04 02:04:50 -08:00
Matt Bell
446acdcdb5 commands/http: Ensure request URLs start with expected prefix 2014-11-04 02:04:50 -08:00
Matt Bell
bc6938dc08 commands: Cleaned up argument validation 2014-11-04 02:04:49 -08:00
Matt Bell
f6c38882f0 commands: Return a reader in a Response#Reader method, instead of making Response implementing io.Reader 2014-11-04 02:04:49 -08:00
Matt Bell
69a56de040 commands: Renamed Response#Value to Response#Output 2014-11-04 02:04:49 -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
586a019fbf commands: Fixed Request#CheckArguments not erroring when required arguments were missing 2014-11-04 02:04:49 -08:00
Matt Bell
405cfd9762 commands/http: Made parser/client handle variadic arguments 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
e8d0cbff1d commands: Check argument validity when running commands 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
f7aa2b9f10 commands: Renamed ArgPath to ArgFile 2014-11-04 02:04:48 -08:00
Matt Bell
40858b43ed commands/http: Added stream argument handling to client and request parser 2014-11-04 02:04:48 -08:00
Matt Bell
39c78fbe06 commands: Fixed tests 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
83b2ba00e9 commands: Removed Command#Private field 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
cfa56dde82 commands/http: Error if trying to run private command 2014-11-04 02:04:47 -08:00
Matt Bell
abcebb0bc2 commands/http: Improved client error handling 2014-11-04 02:04:47 -08:00
Matt Bell
ea09268044 commands/http: 404 when trying to call root command 2014-11-04 02:04:47 -08:00
Matt Bell
1e0cabd4db commands/http: Pass root command in as field instead of statically depending on core/commands 2014-11-04 02:04:47 -08:00
Matt Bell
460387fc3b commands: Added 'Private' field to Command 2014-11-04 02:04:47 -08:00
Matt Bell
b61cfd9224 commands: Don't error when marshalling empty Responses 2014-11-04 02:04:47 -08:00
Brian Tiger Chow
4911dc069a refactor(commands) swap argument order to match Http(w, r) idiom 2014-11-04 02:04:47 -08:00
Brian Tiger Chow
b1bf60b877 fix(cmd/ipfs2, commands) imports 2014-11-04 02:04:46 -08:00
Matt Bell
c0a9871d48 commands/http: Made HTTP client unmarshal response values based on the Command#Type 2014-11-04 02:04:46 -08:00
Matt Bell
ef290faa88 commands: Added a Type field for defining output struct formats 2014-11-04 02:04:46 -08:00
Matt Bell
6302356e15 commands: Fixed tests 2014-11-04 02:04:46 -08:00
Matt Bell
32a2959348 commands/http: Don't try to parse HTTP response into a Response, just read the output 2014-11-04 02:04:46 -08:00
Matt Bell
714e13b63a commands/http: Explicitly define the MIME types for each encoding 2014-11-04 02:04:46 -08:00
Matt Bell
b54801cc10 commands: Added plaintext marshalling to Response#Marshal() 2014-11-04 02:04:46 -08:00
Matt Bell
38f8f1c279 commands: Added a Format function to Command, for creating human-readable output based on a Response 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
Matt Bell
507192ef6e commands/http: Use request body as command input stream 2014-11-04 02:04:45 -08:00
Matt Bell
42633e5d40 commands/http: Send request arguments in client requests 2014-11-04 02:04:45 -08:00
Matt Bell
753162529a commands/http: Parse command args 2014-11-04 02:04:45 -08:00
Matt Bell
52bc8bd422 commands/http: Moved http request parsing into a Parse function 2014-11-04 02:04:45 -08:00
Matt Bell
29b96b64a5 commands/http: Made Handler set request contexts 2014-11-04 02:04:45 -08:00
Matt Bell
289bce6bdb commands: Added Request#SetContext() 2014-11-04 02:04:45 -08:00
Matt Bell
48bd73c530 commands/http: Made client load RPC host from config 2014-11-04 02:04:45 -08:00
Matt Bell
20f86c01ce commands: Added Context() to Request 2014-11-04 02:04:45 -08:00
Matt Bell
b033e33293 commands: Fixed test 2014-11-04 02:04:44 -08:00
Matt Bell
53e1359871 commands: Silently skip unrecognized options, it should be up to the transport to decide if they cause an error 2014-11-04 02:04:44 -08:00
Matt Bell
43c61a4e4b commands/http: Moved HTTP RPC handler into commands/http 2014-11-04 02:04:44 -08:00
Matt Bell
8b61daa1db commands/http: Moved HTTP RPC into commands/http package 2014-11-04 02:04:44 -08:00
Matt Bell
a65c99e71e commands: Added Request#Options so consumers can iterate through provided options 2014-11-04 02:04:44 -08:00
Matt Bell
e8b37acda3 commands: Simplified Error string output 2014-11-04 02:04:44 -08:00
Matt Bell
3cebd2176e commands: Made Response implement io.Reader 2014-11-04 02:04:44 -08:00
Matt Bell
94683bb6b2 commands: Removed unused output stream field from Response 2014-11-04 02:04:43 -08:00
Matt Bell
19e5fbae70 commands: Made Response#Error return an *Error instead of an error 2014-11-04 02:04:43 -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
4303dccee9 commands: Added Request#SetStream 2014-10-21 18:27:39 -07:00
Matt Bell
12a6a87b2c commands/cli: Made Parse return a Request (again) 2014-10-21 18:27:05 -07:00
Juan Batiz-Benet
d464e3d143 commands: go fmt 2014-10-21 18:16:04 -07:00
Matt Bell
dd81bf630f commands: Fixed tests 2014-10-21 18:07:49 -07:00
Matt Bell
ca44d0da2c commands: Removed Command#Register and exported Subcommands so subcommands can be defined statically 2014-10-21 18:05:54 -07:00
Matt Bell
6ff98df9c1 commands: Do command collision check in GetOptions 2014-10-21 18:00:26 -07:00
Matt Bell
4f10f03660 commands: Fixed tests 2014-10-21 16:15:22 -07:00
Matt Bell
dd84a3eb44 commands: Got rid of Response#Stream() in favor of setting value to a io.Reader 2014-10-21 16:15:06 -07:00
Matt Bell
b65a5bacbe commands: Made Error implement error interface 2014-10-21 15:25:47 -07:00
Matt Bell
8786878fdb commands: Fixed tests 2014-10-21 15:25:01 -07:00
Matt Bell
4896123c14 commands: Export command Run function 2014-10-21 15:24:39 -07:00
Matt Bell
71ff571ecf commands/cli: Made Parse return component fields instead of a Request 2014-10-20 17:02:25 -07:00
Matt Bell
b022ba4a3a commands: Fixed tests 2014-10-20 14:39:23 -07:00
Matt Bell
7bd7ed6d52 commands: Added output stream field to Response 2014-10-20 14:38:36 -07:00
Matt Bell
c0b28dc19d commands: Added input stream field to Request 2014-10-20 14:38:09 -07:00
Juan Batiz-Benet
b10fc2cc50 turned req + res into interfaces 2014-10-20 11:49:07 -07:00
Juan Batiz-Benet
bbef82f4fa "enc" -> EncShort 2014-10-20 08:00:28 -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
84fa7bc46d AddOptionNames func 2014-10-20 07:53:55 -07:00
Juan Batiz-Benet
09d2277f0a f -> run, Function type. 2014-10-20 07:53:54 -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
Matt Bell
f87c418eee commands/cli: Refactored CLI parsing to match go tooling conventions 2014-10-20 07:04:54 -07:00
Matt Bell
e5e121a6b1 commands: Made Request#Option also return an existence bool 2014-10-20 07:04:54 -07:00
Matt Bell
4f06c6fdba commands: Formatted code 2014-10-20 07:04:54 -07:00
Matt Bell
d2176c05eb commands: Added Command#Get 2014-10-20 07:04:54 -07:00
Matt Bell
c054fb3655 commands: Added simple Command#Resolve test 2014-10-20 07:04:54 -07:00
Matt Bell
4af61ad994 commands: Added Command#Resolve 2014-10-20 07:04:54 -07:00
Matt Bell
4b0f44e441 commands: Fixed tests 2014-10-20 07:04:54 -07:00
Matt Bell
09311d4bab commands: Added 'NewEmptyRequest' 2014-10-20 07:04:54 -07:00
Matt Bell
968ec344e5 commands/cli: Made Parse return a Request object instead of separate values 2014-10-20 07:04:53 -07:00
Matt Bell
7a36278dbc commands: Allow setting Request fields in NewRequest 2014-10-20 07:04:53 -07:00
Matt Bell
47eea7fd93 commands: Added a option validation test for convertible string values 2014-10-20 07:04:53 -07:00
Matt Bell
1e8719e7f4 commands: Fixed tests 2014-10-20 07:04:53 -07:00
Matt Bell
c575b5087a commands: Added option value conversion, and moved option validation logic into Request#convertOptions 2014-10-20 07:04:53 -07:00
Matt Bell
e1a4b8d668 commands: Added Request#SetPath method 2014-10-20 07:04:53 -07:00
Matt Bell
793a8de9c2 commands: Refactored to make Request contain command path 2014-10-20 07:04:53 -07:00
Matt Bell
86bc450b20 commands/cli: Pass option definitions as an argument to parseOptions 2014-10-20 07:04:53 -07:00
Matt Bell
97b8719075 commands/cli: Removed parser string handling since the go runtime handles it for us automatically 2014-10-20 07:04:53 -07:00
Matt Bell
5d9fa93c85 commands/cli: Added test for single-dash option value 2014-10-20 07:04:53 -07:00
Matt Bell
66e6da3ddd commands/cli: Added value parsing for single-dash options 2014-10-20 07:04:52 -07:00
Matt Bell
08885c0ced commands/cli: Fixed tests for refactor 2014-10-20 07:04:52 -07:00
Matt Bell
bb32633136 commands/cli: Refactored parsing to always get the command path at the beginning of the CLI input 2014-10-20 07:04:52 -07:00
Matt Bell
66b0727de6 commands/cli: Renamed parse functions to parse* 2014-10-20 07:04:52 -07:00
Matt Bell
1b35615824 commands: Made Command#GetOption method, for getting all options for a given command path 2014-10-20 07:04:52 -07:00
Matt Bell
f437230d88 commands/cli: Added path/args test 2014-10-20 07:04:52 -07:00
Matt Bell
4bd3a77778 commands/cli: Added path/args parsing 2014-10-20 07:04:52 -07:00
Matt Bell
b3eecf4f64 commands/cli: Added simple option parser test 2014-10-20 07:04:52 -07:00
Matt Bell
bf328181cd commands/cli: Added CLI option parsing 2014-10-20 07:04:52 -07:00
Matt Bell
43670971d8 commands: Formatted code 2014-10-20 07:04:52 -07:00
Matt Bell
94ca2642a1 commands: Added test for Response error marshalling 2014-10-20 07:04:51 -07:00
Matt Bell
aa592cec80 commands: Added error marshalling to Response 2014-10-20 07:04:51 -07:00
Matt Bell
01938ac574 commands: Updated Response test to use safer option setting 2014-10-20 07:04:51 -07:00
Matt Bell
308ee5c949 commands: Added Request#SetOption so we can set options with multiple names 2014-10-20 07:04:51 -07:00
Matt Bell
808d9c1912 commands: Wrote tests for Response marshalling 2014-10-20 07:04:51 -07:00
Matt Bell
a3a843759b commands: Added marshalling to Response 2014-10-20 07:04:51 -07:00
Matt Bell
95b0dd29f8 commands: Added an Error struct for creating marshallable errors 2014-10-20 07:04:51 -07:00
Matt Bell
d1595ce34c commands: Added basic methods to Request 2014-10-20 07:04:51 -07:00
Matt Bell
df034c9c0b commands: Updated Command tests for new Response API 2014-10-20 07:04:51 -07:00
Matt Bell
b2ee05a0be commands: Updated Command to use Response for output rather than (interface{}, error) 2014-10-20 07:04:50 -07:00
Matt Bell
f31fd53df9 commands: Added Response 2014-10-20 07:04:50 -07:00
Matt Bell
97ce60f8a4 commands: Added global options list to command tests 2014-10-20 07:04:50 -07:00
Matt Bell
d7e9afc801 commands: Use global options when registering and calling commands 2014-10-20 07:04:50 -07:00
Matt Bell
47ebf174f4 commands: Created a list of global options (for options owned by commands package) 2014-10-20 07:04:50 -07:00
Matt Bell
e593c180fe commands: Added tests for Command.Register 2014-10-20 07:04:50 -07:00
Matt Bell
5b18844c06 commands: Check for option name collisions 2014-10-20 07:04:50 -07:00
Matt Bell
dd682963a2 commands: Wrote tests for command option validation 2014-10-20 07:04:50 -07:00
Matt Bell
15b7388c0e commands: Request struct 2014-10-20 07:04:49 -07:00
Matt Bell
30ea427b7b commands: Created Option struct 2014-10-20 07:04:49 -07:00
Matt Bell
dd2a10509f commands: Implemented Command 2014-10-20 07:04:49 -07:00