Commit Graph

675 Commits

Author SHA1 Message Date
Thomas Gardner
7279153a0c commands/cli: Add a test for 3e8244
License: MIT
Signed-off-by: Thomas Gardner <tmg@fastmail.com>
2016-04-16 12:22:17 +10:00
Thomas Gardner
3e824412d9 commands/cli: fix parsing of incorrect permutations
parseOpts now does some preliminary path screening to prevent
command sequences like

	`ipfs <hash> cat`

from succeeding. The tests affected by this have been slightly altered,
but should be restored once parseOpts is decoupled from path analysis.

Command suggestion printing has also been factored into a single
function.

Fixes: #2501
License: MIT
Signed-off-by: Thomas Gardner <tmg@fastmail.com>
2016-04-05 21:53:21 +10:00
Steven Allen
a72d26b875 api: correctly set the content type for object get --encoding=protobuf
It used to default to `application/json` but is now correctly set to
`application/protobuf`.

fixes #2469

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2016-03-31 17:14:41 -04:00
Jeromy Johnson
850602361d fix double transfer encoding head problem
License: MIT
Signed-off-by: Jeromy Johnson <why@ipfs.io>
2016-03-14 16:26:49 -07:00
Jeromy
767ee13ea2 add default option value support to commands lib
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-03-04 10:58:27 -08:00
Jeromy
e664fc3a2d add command to change keep time for reqlog objects
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-19 22:05:05 -08:00
Jeromy
dbf0185a91 fix panic in cli arg parsing
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-17 13:05:51 -08:00
Jeromy
d7dab3afea Use gx vendored go-ipfs-utils where possible
For the rest of the packages in util, move them to thirdparty
and update the references. util is gone!

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-12 17:21:40 -08:00
Robert Carlsen
ed23d99d6f fix panic where closenotify was called from wrong goroutine
Previously, this was the result when running a test with go1.6rc2:

    go test github.com/ipfs/go-ipfs/commands/http
    panic: net/http: CloseNotify called after ServeHTTP finished

    goroutine 19 [running]:
    net/http.(*response).CloseNotify(0xc8202ca1a0, 0x0)
        /home/r/go/src/net/http/server.go:1533 +0x9d
    github.com/ipfs/go-ipfs/commands/http.internalHandler.ServeHTTP.func2(0x7f42c9d1d180, 0xc8202ca1a0, 0x7f42c9d66e90, 0xc8200f0380, 0xc8201d40d0)
        /home/r/src/github.com/ipfs/go-ipfs/commands/http/handler.go:143 +0x39
    created by github.com/ipfs/go-ipfs/commands/http.internalHandler.ServeHTTP
        /home/r/src/github.com/ipfs/go-ipfs/commands/http/handler.go:147 +0x49d
    FAIL	github.com/ipfs/go-ipfs/commands/http	0.013s

I had also encountered this panic when trying to use the webui.

License: MIT
Signed-off-by: Robert Carlsen <rwcarlsen@gmail.com>
2016-02-08 15:49:58 -06:00
Jeromy Johnson
5a0b8023be Merge pull request #2256 from ipfs/feat/gx-libp2p
vendor libp2p with gx
2016-02-05 16:52:02 -08:00
Jeromy Johnson
db4add4edb Merge pull request #2294 from ipfs/feat/active-clear
command to clear inactive requests from request log
2016-02-04 10:47:10 -08:00
Jeromy Johnson
b11abe283b Merge pull request #2267 from rht/wire/ctx-http-request-2
Directly wire ctx into http request
2016-02-04 10:24:26 -08:00
Jeromy
1e1c89c2a8 command to clear inactive requests from request log
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-04 10:04:04 -08:00
Jeromy Johnson
82cc61614e Merge pull request #2288 from tomgg/tmg/trivial
trivial: various superficial fixes
2016-02-02 22:27:43 -08:00
Thomas Gardner
aaa6569f2c trivial: various superficial fixes
misc/completion/ipfs-completion.bash: add `ipfs stats` to BASH completion

core/commands/mount_unix.go: ensure error is not nil before printing it

contribute.md: fix bibliography indexing in example

core/commands/swarm.go: change tabs to spaces in USAGE message

*: 80-column readability improvements

License: MIT
Signed-off-by: Thomas Gardner <tmg@fastmail.com>
2016-02-03 15:46:28 +10:00
Jeromy
4753e6c292 sort options and add id to verbose output
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-01 22:05:29 -08:00
Jeromy
6e863830bf some comments
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-01 16:39:17 -08:00
Jeromy
c7c1e72eaf add sharness test
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-01 16:35:22 -08:00
Jeromy
366d7db3d3 add command to view active api requests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-01 15:44:43 -08:00
Jeromy
0e8a6700f9 correct go-log dep
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:10 -08:00
Jeromy
0e312f5caf initial vendoring of libp2p outside of the repo with gx
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:06 -08:00
rht
72e98deb93 Cleanup http client Send
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-30 10:22:46 +07:00
rht
45999946be Directly wire ctx into http request
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-30 10:19:27 +07:00
Juan Benet
a2b0287a5f Merge pull request #2141 from Kubuxu/patch-1
Add Server field in HTTP API response header
2016-01-21 23:31:25 -08:00
rht
b9706815b3 Fix SetAllowedOrigins
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-21 10:55:38 +07:00
Jakub Sztandera
981b389a04 Add Server field in HTTP API
Resolves #625
Included in tests.

License: MIT
Signed-off-by: Jakub (Kubuxu) Sztandera <kubuxu@gmail.com>
2016-01-20 18:30:39 +01:00
Jeromy
cd1e389360 rename hidden field
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
19bc5fe845 add more tests for multipart parsing
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
9c641f9906 cleanup multipart
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
a9d6575b7c fix tests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
d892661f3e Flatten multipart file transfers
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
b2b415b57d fix some tests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
rht
bf26b59c37 s/\[0:/\[:/g
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-12 08:22:55 -08:00
rht
743f3edcbb strings.Split -> path.SplitList
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-12 08:22:55 -08:00
rht
ffd859232d Replace strings.Join(elms, "/") with path.Join(elms)
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
6faa70ee59 implement ipfs files command
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
8711c6635d make opt skip map a global
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-28 05:47:33 -08:00
Jeromy
41b89d2fb9 fix closenotify by not sending empty file set
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-28 04:18:56 -08:00
Jeromy
cfb1a69184 cleanup http client code
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-28 04:18:56 -08:00
Jeromy
8ad1141436 fixup panic catching in http handler funcs
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-28 04:18:56 -08:00
rht
aabf80723d Move api version string to repo config
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-12-28 03:48:50 -08:00
rht
0123971118 Move api version check to header
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-12-28 03:48:50 -08:00
Dominic Della Valle
a6eb32b77c Fix path parsing for add command
License: MIT
Signed-off-by: Dominic Della Valle <ddvpublic@gmail.com>
2015-12-22 10:59:17 -05:00
Juan Benet
0f39687fb6 Merge pull request #2019 from ipfs/Dignifiedquire-fix/access-controll-headers
Dignifiedquire fix/access controll headers
2015-12-09 00:55:06 -08:00
Juan Benet
d58053b241 Merge pull request #1961 from ipfs/feat/external-bins
initial support for commands to use external binaries
2015-12-06 21:34:09 -08:00
Jeromy
74b8a0ffaf fix tests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-06 15:31:02 -08:00
Jeromy
96a0726759 address CR feedback
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-06 15:20:18 -08:00
Jeromy
891a8d7656 no newlines in json objects
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-30 15:23:48 -08:00
Jeromy
bdc1b27c51 hard code things
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-30 14:43:37 -08:00
Jeromy
2d2aa666eb fixes from PR
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-16 09:53:10 -08:00
Jeromy
7681b66fee initial support for commands to use external binaries
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-16 09:17:11 -08:00
rht
48a33ffb67 Add fixed period repo GC + test
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-11-10 14:03:29 +07:00
Jeromy
2f5563b3c0 fix log hanging issue, and implement close-notify for commands
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-05 15:57:28 -08:00
Jeromy
94bdce63a7 vendor logging lib update
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-05 15:57:21 -08:00
Jeromy
bb9493ac7c content type on command responses default to text
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-29 02:11:09 -07:00
Jeromy
44059875b6 skip cli parse tests on windows due to no stdin
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-28 14:23:17 -07:00
Jeromy
c023d187b5 update code to use new logging changes
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-27 11:04:56 -07:00
Juan Benet
4022d8b8bd Merge pull request #1885 from ipfs/fix/ndjson
put newlines between streaming json output objects
2015-10-27 06:24:02 -04:00
Jeromy
f130869b45 put newlines between streaming json output objects
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-25 22:38:38 -07:00
Jeromy
4470826fe2 fix streaming output to flush per write
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-21 14:51:03 -07:00
Juan Benet
27eece3e81 Merge pull request #1835 from miolini/master
fix races in http cors
2015-10-20 12:47:06 -07:00
rht
c091cf5abe Fix cli flag orders (long, short)
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-10-19 12:53:23 +07:00
Juan Benet
d6297c7498 Merge pull request #1823 from ForrestWeston/recurPin
Pin commands default to recursive
2015-10-16 08:43:25 -07:00
ForrestWeston
a8fc65fda0 Added tests from code-review
License: MIT
Signed-off-by: ForrestWeston <Forrest.Weston@gmail.com>
2015-10-13 17:11:05 -07:00
ForrestWeston
107409cee8 Added ability to specify true/false for bool opts
License: MIT
Signed-off-by: ForrestWeston <Forrest.Weston@gmail.com>
2015-10-13 17:11:05 -07:00
Artem Andreenko
4555085844 fix races in http cors
License: MIT
Signed-off-by: Artem Andreenko <mio@volmy.com>
2015-10-13 01:09:55 +03:00
Jeromy
e89f7b8ded use go's built in handling of trailers and dont do custom chunking
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

use go1.5 syntax to ensure builds on older versions fail

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

fix t0230

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-11 23:04:41 -07:00
Jeromy
8f0623255d replace imports with absolute path instead of using symlink
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-03 14:30:50 -07:00
Cayman Nava
9634b25b63 remove hard-coded json content-type for streaming http output
There was a stale assumption that streaming output from a channel would
always be json.
This commit removes that code, allowing Content-Type to appropriately be
set like other, non-channel-streaming commands.

License: MIT
Signed-off-by: Cayman Nava <caymannava@gmail.com>
2015-09-24 19:13:29 -07:00
Jeromy
e5a2896c0e extract logging
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-14 17:35:50 -07:00
Juan Benet
408bea3797 Merge pull request #1641 from rht/namedpipe
Serialfile: Explicit err on unrecognized file type
2015-09-05 03:19:54 +02:00
Jeromy
206739d10c allow channel marshaler to return errors from cmds.Response
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-04 14:12:19 -07:00
rht
ccc9cd6a6c Refactor serialfile
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-09-04 16:57:44 +07:00
rht
ddc8dff736 serialfile: Explicit err on unrecognized file type
So that ipfs add on daemon no longer blocks

License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-09-04 16:57:44 +07:00
Juan Benet
018e20ae19 Merge pull request #1628 from rht/size-walk
Use filepath.Walk to compute serialfile total size
2015-09-03 16:32:02 +02:00
rht
00a56a14ec serialfile: localize os.Open into NewSerialFile
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-09-03 20:30:41 +07:00
Juan Benet
006cd5fe25 Merge pull request #1627 from ipfs/feat/symlinks
implement symlinks in unixfs, first draft
2015-09-02 22:36:50 +02:00
Jeromy
d85d61c968 recover and print panics that happen in API server
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-02 11:12:13 -07:00
Jeromy
167532c2b6 fix direct symlink adding
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-02 10:51:03 -07:00
Jeromy
4bcacc5936 address most of CR comments
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-02 10:12:04 -07:00
rht
b45e82418b Use filepath.Walk to compute serialfile total size
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-08-31 10:57:54 +07:00
Jeromy
d993bc04d6 implement symlinks in unixfs, first draft
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-08-30 13:33:42 -07:00
rht
d32177cda0 Make sure ctx in commands are derived from req.Context
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-08-23 19:35:03 +07:00
Juan Batiz-Benet
978c9fa16f cmds/add: use dagutils.Editor, like patch
This changes the pin behavior. It uses the filenames given through
the api, and allows files to be streamed faltly (not a hierarchy),
which is easier for other things (like vinyl in node-ipfs-api land).
Files can also be entirely out of order, and the garbage intermediate
directories will not be pinned (gc-ed later).

The changes also mean the output of add has changed slightly-- it
no longer shows the local path added, but rather the dag path
relative to the added roots. This is a small difference, but changes
tests.

The dagutils.Editor creates a lot of chaff (intermediate objects)
along the way. Wonder how we might minimize the writes to the
datastore...

This commit also removes the "NilRepo()" part of the --only-hash
mode. We need to store at least in an in-mem repo/datastore because
otherwise the dagutils.Editor breaks.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-08-12 08:24:06 +02:00
Juan Batiz-Benet
3ee83a7c5e fix cors: defaults should take the port of the listener
need to do it this way to avoid VERY confusing situations where
the user would change the API port (to another port, or maybe even
to :0). this way things dont break on the user, and by default,
users only need to change the API address and things should still
"just work"

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-08-02 08:16:51 +02:00
Juan Benet
8a75c755d4 Merge pull request #1539 from ipfs/log-api-route
fix log tail command
2015-07-29 15:22:49 -07:00
Jeromy
082c147bbe should fix issue where 'read on closed body' error was leaking down
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-29 13:26:39 -07:00
Jeromy
b10e26a429 cancel contexts when client disconnects
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-29 11:02:10 -07:00
Juan Batiz-Benet
4a7c1cf802 add -w improvement: wrap multiple files in one dir
> ipfs add a b c
  added Qmbvkmk9LFsGneteXk3G7YLqtLVME566ho6ibaQZZVHaC9 a
  added QmR9pC5uCF3UExca8RSrCVL8eKv7nHMpATzbEQkAHpXmVM b
  added QmetGxZTgo8tYAKQH1KLsY13MxqeVHbxYVmvzBzJAKU6Z7 c
  added QmXg3WHLcjnz4ejeYF6FKVBkb4m1oKjQmF5fEWL9M1uQF3

  > ipfs ls QmXg3WHLcjnz4ejeYF6FKVBkb4m1oKjQmF5fEWL9M1uQF3
  Qmbvkmk9LFsGneteXk3G7YLqtLVME566ho6ibaQZZVHaC9 10 a
  QmR9pC5uCF3UExca8RSrCVL8eKv7nHMpATzbEQkAHpXmVM 10 b
  QmetGxZTgo8tYAKQH1KLsY13MxqeVHbxYVmvzBzJAKU6Z7 10 c

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-29 03:07:39 -07:00
Juan Batiz-Benet
8f35c3bcd9 more serious CORS tests.
this commit introduces more serious CORS tests that check
status response codes, and run real HTTP requests.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:11 -07:00
Juan Batiz-Benet
d5f94be474 fix API handler to respect referer + exit on CORS
this commit makes the API handler short circuit the request if the
CORS headers say its not allowed. (the CORS handler only sets the
headers, but does not short-circuit)

It also makes the handler respect the referer again. See security
discussion at https://github.com/ipfs/go-ipfs/issues/1532

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:11 -07:00
Juan Batiz-Benet
5d9ee59908 address CR comment re interface in cmds http handler
https://github.com/ipfs/go-ipfs/pull/1529#discussion_r35662230

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:10 -07:00
Juan Batiz-Benet
4a571b099b implement arbitrary HTTP header support
this commit adds the ability to specify arbitrary HTTP headers
for either the Gateway or the API. simply set the desired headers
on the config:

    ipfs config --json API.HTTPHeaders.X-MyHdr '["meow :)"]'
    ipfs config --json Gateway.HTTPHeaders.X-MyHdr '["meow :)"]'

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:10 -07:00
Juan Batiz-Benet
c633e2b575 cmds/http: remove referrer check
it used to be here for a CSRF check. but we now have CORS checks.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:09 -07:00
Juan Batiz-Benet
7cf5e87cfe Added API + Gateway support for arbitrary HTTP headers
This commit fixes + improves CORS support

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:09 -07:00
Juan Benet
681da0aa21 Merge pull request #1531 from ipfs/fix/stream-header
only set stream header on streamed output
2015-07-28 12:59:54 -07:00
Jeromy Johnson
98559d0e0b put comment back 2015-07-28 08:44:35 -07:00
Shaun Bruce
c175700dea Better error message on unrecognized command
Closes issue #1436

License: MIT
Signed-off-by: Shaun Bruce <shaun.m.bruce@gmail.com>
2015-07-28 09:20:53 -06:00
Jeromy
2cad99d5ef only set stream header on streamed output
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-28 08:18:31 -07:00
Jeromy
8176766d5a naming and cleanup
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-27 17:25:38 -07:00
Jeromy
0c4b10afb2 comment need for custom client
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-27 15:19:43 -07:00
Jeromy
23d41e0823 address comments from CR and fix random failures
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-27 09:30:52 -07:00
Jeromy
1ce310be8b some commenting
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-26 11:28:53 -07:00
Jeromy
fd75b64630 refactor http client code
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-25 19:56:45 -07:00
Jeromy
2b06ffaa7d better refactor of http handler code
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-25 18:46:44 -07:00
Jeromy
a7e50f1fbc implement http trailers for errors after headers are sent
refactor http handler and copyChunks to get this all to work correctly
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-25 11:07:31 -07:00
Juan Batiz-Benet
814f437fb4 cmds/http/handler: set stream error trailer
stream output might break. in these cases we need to notify the
client. this is after a 200 response has been sent. We do this
by setting a special trailer (header after the body):

  X-Stream-Error: <error cause>

This is similar to what's done by systems like gRPC. This still
needs to be read + handled on the other side.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-24 14:49:34 -07:00
Juan Batiz-Benet
886d47561a http/client: log errors when stream copy fails
License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-24 14:41:57 -07:00
Jeromy
8286abaf8c attempt at properly closing http response bodies
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-22 13:31:33 -07:00
Jeromy
5873aa2aaa if no context set in request, use context.TODO()
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-20 21:46:51 -07:00
Jeromy
bb3a75aa08 remove context from context
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-20 20:53:06 -07:00
Jeromy
f9f3c6a527 make offline commands respect timeout
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-20 14:34:16 -07:00
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