Commit Graph

663 Commits

Author SHA1 Message Date
Jeromy
6083007987 add a global timeout flag for to be setting timeouts
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-20 12:53:37 -07:00
gatesvp
e55a130b49 Add hidden file support to add
License: MIT
Signed-off-by: Gaetan Voyer-Perrault <gatesvp@gmail.com>
2015-07-09 04:07:34 -07:00
W. Trevor King
663f37cb99 core/commands/unixfs/ls: Don't recurse into chunked files
Folks operating at the Unix-filesystem level shouldn't care about that
level of Merkle-DAG detail.  Before this commit we had:

  $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
  ... several lines of empty-string names ...

And with this commit we have:

  $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox

I also reworked the argument-prefixing (object.Argument) in the output
marshaller to avoid redundancies like:

  $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox

As a side-effect of this rework, we no longer have the trailing blank
line that we used to have after the final directory listing.

The new ErrImplementation is like Python's NotImplementedError, and is
mostly a way to guard against external changes that would need
associated updates in this code.  For example, once we see something
that's neither a file nor a directory, we'll have to update the switch
statement to handle those objects.

License: MIT
Signed-off-by: W. Trevor King <wking@tremily.us>
2015-06-13 13:06:34 -07:00
rht
3547f7ae33 Replace 'var * bytes.Buffer' with '\1 := new(bytes.Buffer)' 2015-05-26 23:18:04 +07:00
Christian Couder
23681727e0 parse: fix parsing optional arg with stdin
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-21 00:30:08 +02:00
Christian Couder
be3b7e13e3 parse_test: test command with optional arg
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-20 22:47:14 +02:00
Christian Couder
8d6bfec890 parse: improve stdin fix
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-20 21:28:41 +02:00
Lars Gierth
2eea1b05b7 parse: fix handling of unwanted stdin
There can be non-terminal (i.e. non-interactive) sessions
that are *not* a pipe, for example:

	ssh user@host ipfs version

In this case, it looks like we should read from stdin.
Parsing stdin is accomplished by deliberately triggering
the parsing loop once.

We didn't previously check whether there is an ArgDef to support
that loop iteration.
2015-05-20 04:25:56 +02:00
Lars Gierth
4e0ca860e9 parse_test: test unwanted stdin 2015-05-20 04:23:43 +02:00
Juan Batiz-Benet
c561c0980b Merge pull request #1239 from rht/master
Add gofmt check
2015-05-19 04:03:23 -04:00
rht
ac7edddb94 Run 'gofmt -s -w' on these files 2015-05-19 06:11:15 +07:00
Christian Couder
275ec7c2a0 parse_test: test stdin enabled and not variadic arg
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-18 00:24:13 +02:00
Christian Couder
53a80e255f parse: fix arg number check
This should fix issue #1196 (Can't launch a command line
process from Qt).

The check was bad because it took stdin into account,
but it really shouldn't.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-18 00:03:02 +02:00
Christian Couder
c93d583f02 parse_test: add tests with 2 args and stdin
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-17 23:48:56 +02:00
Christian Couder
942e96400b parse: fix parsing stdin args
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-17 23:43:24 +02:00
Christian Couder
5503c4cc89 parse_test: improve error messages
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-17 23:14:08 +02:00
Christian Couder
97ab64af30 parse: don't use stdin if there are arguments
This should fix issue #1141 (ipfs cat "multihash too short"
error when using stdin) and perhaps others.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-17 21:19:12 +02:00
Christian Couder
ff9cb9ecf4 parse_test: test multiline stdin
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-17 20:34:40 +02:00
David Braun
496e7a4b2c Vendor CORS library. 2015-05-10 10:58:37 -07:00
David Braun
f6c6d5de13 Add CORS middleware handler to the API. 2015-05-08 18:41:00 -07:00
Henry
f640ba0089 core: add context.Context param to core.Resolve()
commands/object: remove objectData() and objectLinks() helpers
resolver: added context parameters
sharness: $HASH carried the \r from the http protocol with
sharness: write curl output to individual files
http gw: break PUT handler until PR#1191
2015-05-08 03:14:32 +02:00
Juan Batiz-Benet
9b12e02b69 Merge pull request #1193 from ipfs/improve_parse_test
Improve parse_test.go
2015-05-04 15:15:55 -07:00
Christian Couder
93f253e00b parse_test: add testFail() to simplify tests
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-03 20:18:40 +02:00
Christian Couder
47a88f8429 parse_test: improve existing tests
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-03 20:10:28 +02:00
Christian Couder
c6dcfaaf5d parse_test: use fileToSimulateStdin()
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-03 12:09:13 +02:00
Christian Couder
58126c1c6c parse_test: improve tests with stdin enabled arg
Now also check that we get the right arguments from
the parsing.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-02 23:35:24 +02:00
Christian Couder
d0752a714d parse_test: add tests for stdin enabled arg
Let's document how stdin enabled arguments currently
work by adding some tests.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-02 23:02:57 +02:00
Christian Couder
3e4a06945f parse_test: fix and test sameWords()
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-02 23:02:57 +02:00
Christian Couder
2a5b2f2f4a parse_test: move helper functions
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-05-02 23:02:57 +02:00
W. Trevor King
9f2f29a9a4 commands/command: Add a package comment
I'm not quite sure which file in this package is the most prominent,
but command.go seemed like a reasonable choice.
2015-04-30 21:25:55 -07:00
Tommi Virtanen
e78305546c gofmt 2015-04-28 16:18:26 -07:00
Etienne Laurin
f168539030 Improve command line parsing 2015-04-27 17:19:38 +00:00
Tor Arne Vestbø
bfd12114e7 Remove daemon InitDone guard in interrupt handler
Instead of just terminating right there and then, we cancel the
context, and let the daemon exit cleanly. This make take a few
seconds, as the node builder and its child processes do not
care too much about the context state while building nodes,
but this can be improved by injecting checks for ctx.Done()
before time-consuming steps.
2015-04-20 16:35:35 +02:00
Tor Arne Vestbø
cc45e21e4c Teach http client to abort channel streaming on context cancellation
When the response includes the X-Chunked-Output header, we treat that
as channel output, and fire up a goroutine to decode the chunks. This
routine need to look for context cancellation so that it can exit
cleanly.
2015-04-20 16:35:35 +02:00
Tor Arne Vestbø
661fb0a4b5 Teach http client to cancel request on context cancellation
The context may be cancelled while a request is in flight. We need to
handle this and cancel the request. The code is based on the ideas
from https://blog.golang.org/context
2015-04-20 16:35:35 +02:00
Ho-Sheng Hsiao
bf22aeec0a Reorged imports from jbenet/go-ipfs to ipfs/go-ipfs
- Modified Godeps/Godeps.json by hand
- [TEST] Updated welcome docs hash to sharness
- [TEST] Updated contact doc
- [TEST] disabled breaking test (t0080-repo refs local)
2015-03-31 12:52:25 -07:00
Konstantin Koroviev
d23bed5baa Rename ContextIsReadyToBeClosed to InitDone 2015-03-12 11:42:07 +02:00
Konstantin Koroviev
afd497e194 Dirty hack to fix race conditions in the daemon 2015-03-09 16:39:41 +02:00
Henry
86b34a2af6 NewRequest() - export OptMap type 2015-03-08 12:14:41 +01:00
Henry
92d08db7a5 rewrote import paths of go.net/context to use golang.org/x/context
- updated go-ctxgroup and goprocess
ctxgroup: AddChildGroup was changed to AddChild. Used in two files:
- p2p/net/mock/mock_net.go
- routing/dht/dht.go

- updated context from hg repo to git
prev. commit in hg was ad01a6fcc8a19d3a4478c836895ffe883bd2ceab. (context: make parentCancelCtx iterative)
represents commit 84f8955a887232b6308d79c68b8db44f64df455c in git repo

- updated context to master (b6fdb7d8a4ccefede406f8fe0f017fb58265054c)

Aaron Jacobs (2):
net/context: Don't accept a context in the DoSomethingSlow example.
context: Be clear that users must cancel the result of WithCancel.

Andrew Gerrand (1):
go.net: use golang.org/x/... import paths

Bryan C. Mills (1):
net/context: Don't leak goroutines in Done example.

Damien Neil (1):
context: fix removal of cancelled timer contexts from parent

David Symonds (2):
context: Fix WithValue example code.
net: add import comments.

Sameer Ajmani (1):
context: fix TestAllocs to account for ints in interfaces
2015-02-25 11:58:19 +01:00
Matt Bell
e8bbf1dcdf commands/http: Made command HTTP API only accept requests from referers on the same server 2015-02-04 18:46:59 -08:00
Matt Bell
a7de81b818 commands: URL escape filenames in multipart files, resolves #654 2015-02-04 16:53:24 -08:00
Juan Batiz-Benet
58f39687cf logs: removed all log.Errors unhelpful to users
Let's save log.Error for things the user can take action on.
Moved all our diagnostics to log.Debug. We can ideally reduce them
even further.
2015-02-03 01:06:07 -08:00
Juan Batiz-Benet
4334f6fda3 Merge pull request #613 from jbenet/progress-bars
Progress Bars
2015-01-23 22:20:34 -08:00
Matt Bell
5589021a1d commands/http: Fixed panics when unmarshaling command output without a set Command.Type 2015-01-23 19:11:56 -08:00
Matt Bell
5706471897 commands: Made PostRun signature match Run 2015-01-23 18:29:31 -08:00
Matt Bell
3fc9bedb0b commands: Made Std{in|out|err} accessible in Request/Response 2015-01-23 18:29:31 -08:00
Matt Bell
c73c4ae55d commands/files: Added SizeFile interface 2015-01-23 18:29:30 -08:00
Matt Bell
4a6aec645e commands: request: Added Values map 2015-01-23 18:29:30 -08:00
Matt Bell
8ca8d6ef71 commands/files: Added PeekFile and StatFile interfaces
squash! commands/files: Added PeekFile and StatFile interfaces

commands/http: Updated test
2015-01-23 18:29:30 -08:00
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