go test passes, sharness fails
pass API path to cmds, fix options in add. License: MIT Signed-off-by: keks <keks@cryptoscope.com>
keks committed
Dec 1, 2017 at 10:40 UTC
84101c8a2aa45a223492f0aa73a9f863f5686f93
29 files changed
+255
-59
cmd/ipfs/daemon.go
+4
-4
@@ -18,16 +18,16 @@ import (
18
corehttp "github.com/ipfs/go-ipfs/core/corehttp"
19
corerepo "github.com/ipfs/go-ipfs/core/corerepo"
20
nodeMount "github.com/ipfs/go-ipfs/fuse/node"
21
- config "github.com/ipfs/go-ipfs/repo/config"
21
+ //config "github.com/ipfs/go-ipfs/repo/config"
22
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
23
migrate "github.com/ipfs/go-ipfs/repo/fsrepo/migrations"
24
25
"gx/ipfs/QmSGL5Uoa6gKHgBBwQG8u1CWKUC8ZnwaZiLgFVTFBR2bxr/go-multiaddr-net"
26
mprome "gx/ipfs/QmSk46nSD78YiuNojYMS8NW6hSCjH95JajqqzzoychZgef/go-metrics-prometheus"
27
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
27
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
28
ma "gx/ipfs/QmW8s4zTsUoX1Q6CeYxVKPyqSKbF7H1YDUyTostBtZ8DaG/go-multiaddr"
29
"gx/ipfs/QmX3QZ5jHEPidwUrymXV1iSCSUhdGxj15sm2gP4jKMef7B/client_golang/prometheus"
30
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
31
iconn "gx/ipfs/Qmf82zCaYV8bkztRRoGwwSHVkaYtP2UKBnhpjJz1uFGJjQ/go-libp2p-interface-conn"
32
)
33
@@ -434,8 +434,8 @@ func serveHTTPApi(req *cmds.Request, cctx *oldcmds.Context) (error, <-chan error
434
var opts = []corehttp.ServeOption{
435
corehttp.MetricsCollectionOption("api"),
436
corehttp.CommandsOption(*cctx),
437
- corehttp.CheckVersionOption(),
438
- corehttp.ServerNameOption("go-ipfs/" + config.CurrentVersionNumber),
437
+ //corehttp.CheckVersionOption(),
438
+ //corehttp.ServerNameOption("go-ipfs/" + config.CurrentVersionNumber),
439
corehttp.WebUIOption,
440
gatewayOpt,
441
corehttp.VersionOption(),
cmd/ipfs/ipfs.go
+1
-1
@@ -6,7 +6,7 @@ import (
6
commands "github.com/ipfs/go-ipfs/core/commands"
7
8
lgc "github.com/ipfs/go-ipfs/commands/legacy"
9
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
9
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
10
)
11
12
// This is the CLI root, used for executing commands accessible to CLI clients.
cmd/ipfs/main.go
+9
-8
@@ -21,6 +21,7 @@ import (
21
oldcmds "github.com/ipfs/go-ipfs/commands"
22
core "github.com/ipfs/go-ipfs/core"
23
coreCmds "github.com/ipfs/go-ipfs/core/commands"
24
+ corehttp "github.com/ipfs/go-ipfs/core/corehttp"
25
"github.com/ipfs/go-ipfs/plugin/loader"
26
repo "github.com/ipfs/go-ipfs/repo"
27
config "github.com/ipfs/go-ipfs/repo/config"
@@ -30,12 +31,12 @@ import (
31
manet "gx/ipfs/QmSGL5Uoa6gKHgBBwQG8u1CWKUC8ZnwaZiLgFVTFBR2bxr/go-multiaddr-net"
32
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
33
loggables "gx/ipfs/QmSvcDkiRwB8LuMhUtnvhum2C851Mproo75ZDD19jx43tD/go-libp2p-loggables"
33
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
34
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/cli"
35
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/http"
34
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
35
ma "gx/ipfs/QmW8s4zTsUoX1Q6CeYxVKPyqSKbF7H1YDUyTostBtZ8DaG/go-multiaddr"
36
osh "gx/ipfs/QmXuBJ7DR6k3rmUEKtvVMhwjmXDuJgXXPUt4LQXKBMsU93/go-os-helper"
37
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
38
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/cli"
39
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/http"
40
)
41
42
// log is the command logger
@@ -269,11 +270,11 @@ func (i *cmdInvocation) Parse(ctx context.Context, args []string) error {
270
271
// if no encoding was specified by user, default to plaintext encoding
272
// (if command doesn't support plaintext, use JSON instead)
272
- if enc := i.req.Options[cmds.EncShort]; enc == "" {
273
+ if enc := i.req.Options[cmds.EncLong]; enc == "" {
274
if i.req.Command.Encoders != nil && i.req.Command.Encoders[cmds.Text] != nil {
274
- i.req.SetOption(cmds.EncShort, cmds.Text)
275
+ i.req.SetOption(cmds.EncLong, cmds.Text)
276
} else {
276
- i.req.SetOption(cmds.EncShort, cmds.JSON)
277
+ i.req.SetOption(cmds.EncLong, cmds.JSON)
278
}
279
}
280
@@ -313,7 +314,7 @@ func callCommand(ctx context.Context, req *cmds.Request, root *cmds.Command, cct
314
return err
315
}
316
316
- encTypeStr, _ := req.Options[cmds.EncShort].(string)
317
+ encTypeStr, _ := req.Options[cmds.EncLong].(string)
318
encType := cmds.EncodingType(encTypeStr)
319
320
var (
@@ -658,7 +659,7 @@ func apiClientForAddr(addr ma.Multiaddr) (http.Client, error) {
659
return nil, err
660
}
661
661
- return http.NewClient(host), nil
662
+ return http.NewClient(host, http.ClientWithAPIPrefix(corehttp.APIPath)), nil
663
}
664
665
func isConnRefused(err error) bool {
commands/command.go
+1
-1
@@ -17,8 +17,8 @@ import (
17
"github.com/ipfs/go-ipfs/path"
18
19
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
20
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
20
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
21
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
22
)
23
24
var log = logging.Logger("command")
commands/command_test.go
+2
-2
@@ -3,8 +3,8 @@ package commands
3
import (
4
"testing"
5
6
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
6
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
7
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
8
)
9
10
func noop(req Request, res Response) {
@@ -59,7 +59,7 @@ func TestOptionValidation(t *testing.T) {
59
}
60
61
req, _ = NewRequest(nil, nil, nil, nil, nil, opts)
62
- req.SetOption(cmds.EncShort, "json")
62
+ req.SetOption(cmds.EncLong, "json")
63
res = cmd.Call(req)
64
if res.Error() != nil {
65
t.Error("Should have passed")
commands/legacy/command.go
+1
-1
@@ -3,7 +3,7 @@ package legacy
3
import (
4
"io"
5
6
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
6
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
7
8
oldcmds "github.com/ipfs/go-ipfs/commands"
9
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
commands/legacy/legacy.go
+1
-1
@@ -4,7 +4,7 @@ import (
4
"io"
5
"runtime/debug"
6
7
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
7
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
8
9
oldcmds "github.com/ipfs/go-ipfs/commands"
10
)
commands/legacy/legacy_test.go
+1
-1
@@ -7,8 +7,8 @@ import (
7
"testing"
8
9
oldcmds "github.com/ipfs/go-ipfs/commands"
10
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
10
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
11
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
12
)
13
14
type WriteNopCloser struct {
commands/legacy/request.go
+1
-1
@@ -7,9 +7,9 @@ import (
7
"os"
8
"reflect"
9
10
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
10
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
11
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit/files"
12
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
13
14
oldcmds "github.com/ipfs/go-ipfs/commands"
15
)
commands/legacy/response.go
+3
-1
@@ -7,8 +7,8 @@ import (
7
"reflect"
8
"sync"
9
10
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
10
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
11
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
12
13
oldcmds "github.com/ipfs/go-ipfs/commands"
14
)
@@ -47,6 +47,8 @@ func (rw *responseWrapper) Output() interface{} {
47
case io.Reader:
48
// if it's a reader, set it
49
rw.out = v
50
+ case cmds.Single:
51
+ rw.out = v.Value
52
default:
53
// if it is something else, create a channel and copy values from next in there
54
ch := make(chan interface{})
commands/response.go
+2
-2
@@ -9,8 +9,8 @@ import (
9
"os"
10
"strings"
11
12
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
12
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
13
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
14
)
15
16
// ErrorType signfies a category of errors
@@ -149,7 +149,7 @@ func (r *response) Marshal() (io.Reader, error) {
149
return bytes.NewReader([]byte{}), nil
150
}
151
152
- enc, found, err := r.req.Option(cmds.EncShort).String()
152
+ enc, found, err := r.req.Option(cmds.EncLong).String()
153
if err != nil {
154
return nil, err
155
}
commands/response_test.go
+2
-2
@@ -6,8 +6,8 @@ import (
6
"strings"
7
"testing"
8
9
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
9
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
10
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
11
)
12
13
type TestOutput struct {
@@ -29,7 +29,7 @@ func TestMarshalling(t *testing.T) {
29
t.Error("Should have failed (no encoding type specified in request)")
30
}
31
32
- req.SetOption(cmds.EncShort, JSON)
32
+ req.SetOption(cmds.EncLong, JSON)
33
34
reader, err := res.Marshal()
35
if err != nil {
core/commands/add.go
+10
-6
@@ -18,10 +18,10 @@ import (
18
mfs "github.com/ipfs/go-ipfs/mfs"
19
ft "github.com/ipfs/go-ipfs/unixfs"
20
21
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
21
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
22
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit/files"
23
mh "gx/ipfs/QmYeKnKpubCMRiq3PGZcTREErthbb5Q9cXsCoSkD9bjEBd/go-multihash"
24
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
25
"gx/ipfs/QmeWjRodbcZFKe5tMN7poEx3izym6osrLSnTLf9UjJZBbs/pb"
26
)
27
@@ -162,7 +162,6 @@ You can now check what blocks have been created by:
162
return nil
163
},
164
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env interface{}) {
165
- fmt.Printf("%#v\n", req)
165
n, err := GetNode(env)
166
if err != nil {
167
res.SetError(err, cmdkit.ErrNormal)
@@ -202,6 +201,15 @@ You can now check what blocks have been created by:
201
return
202
}
203
204
+ if hfset && hashFunStr != "sha2-256" && cidVer == 0 {
205
+ cidVer = 1
206
+ }
207
+
208
+ if cidVer > 0 && !rbset {
209
+ rawblks = true
210
+ }
211
+
212
+ // if rawblocks is not explicitly set but nocopy is, set rawblocks
213
if nocopy && !rbset {
214
rawblks = true
215
}
@@ -211,10 +219,6 @@ You can now check what blocks have been created by:
219
return
220
}
221
214
- if hfset && hashFunStr != "sha2-256" && cidVer == 0 {
215
- cidVer = 1
216
- }
217
-
222
prefix, err := dag.PrefixForCidVersion(cidVer)
223
if err != nil {
224
res.SetError(err, cmdkit.ErrNormal)
core/commands/bitswap.go
+1
-1
@@ -12,9 +12,9 @@ import (
12
decision "github.com/ipfs/go-ipfs/exchange/bitswap/decision"
13
14
"gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
15
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
15
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
16
peer "gx/ipfs/QmWNY7dV54ZDYmTA1ykVdwNCqC11mpU4zSUp6XDpLTH9eG/go-libp2p-peer"
17
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
18
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
19
)
20
core/commands/block.go
+1
-1
@@ -11,9 +11,9 @@ import (
11
util "github.com/ipfs/go-ipfs/blocks/blockstore/util"
12
e "github.com/ipfs/go-ipfs/core/commands/e"
13
14
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
14
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
15
mh "gx/ipfs/QmYeKnKpubCMRiq3PGZcTREErthbb5Q9cXsCoSkD9bjEBd/go-multihash"
16
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
17
blocks "gx/ipfs/QmYsEQydGrsxNZfAiskvQ76N2xE9hDQtSAkRSynwMiUK3c/go-block-format"
18
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
19
)
core/commands/cat.go
+1
-1
@@ -9,8 +9,8 @@ import (
9
core "github.com/ipfs/go-ipfs/core"
10
coreunix "github.com/ipfs/go-ipfs/core/coreunix"
11
12
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
12
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
13
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
14
)
15
16
const progressBarMinSize = 1024 * 1024 * 8 // show progress bar for outputs > 8MiB
core/commands/commands.go
+1
-1
@@ -14,8 +14,8 @@ import (
14
// oldcmds "github.com/ipfs/go-ipfs/commands"
15
e "github.com/ipfs/go-ipfs/core/commands/e"
16
17
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
17
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
18
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
19
)
20
21
type commandEncoder struct {
core/commands/commands_test.go
new
+188
@@ -0,0 +1,188 @@
1
+package commands
2
+
3
+import (
4
+ "strings"
5
+ "testing"
6
+
7
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
8
+)
9
+
10
+func collectPaths(prefix string, cmd *cmds.Command, out map[string]struct{}) {
11
+ for name, sub := range cmd.Subcommands {
12
+ path := prefix + "/" + name
13
+ out[path] = struct{}{}
14
+ collectPaths(path, sub, out)
15
+ }
16
+}
17
+
18
+func TestCommands(t *testing.T) {
19
+ list := []string{
20
+ "/add",
21
+ "/bitswap",
22
+ "/bitswap/ledger",
23
+ "/bitswap/reprovide",
24
+ "/bitswap/stat",
25
+ "/bitswap/unwant",
26
+ "/bitswap/wantlist",
27
+ "/block",
28
+ "/block/get",
29
+ "/block/put",
30
+ "/block/rm",
31
+ "/block/stat",
32
+ "/bootstrap",
33
+ "/bootstrap/add",
34
+ "/bootstrap/add/default",
35
+ "/bootstrap/list",
36
+ "/bootstrap/rm",
37
+ "/bootstrap/rm/all",
38
+ "/cat",
39
+ "/commands",
40
+ "/config",
41
+ "/config/edit",
42
+ "/config/replace",
43
+ "/config/show",
44
+ "/dag",
45
+ "/dag/get",
46
+ "/dag/put",
47
+ "/dag/resolve",
48
+ "/dht",
49
+ "/dht/findpeer",
50
+ "/dht/findprovs",
51
+ "/dht/get",
52
+ "/dht/provide",
53
+ "/dht/put",
54
+ "/dht/query",
55
+ "/diag",
56
+ "/diag/cmds",
57
+ "/diag/cmds/clear",
58
+ "/diag/cmds/set-time",
59
+ "/diag/sys",
60
+ "/dns",
61
+ "/file",
62
+ "/file/ls",
63
+ "/files",
64
+ "/files/chcid",
65
+ "/files/cp",
66
+ "/files/flush",
67
+ "/files/ls",
68
+ "/files/mkdir",
69
+ "/files/mv",
70
+ "/files/read",
71
+ "/files/rm",
72
+ "/files/stat",
73
+ "/filestore",
74
+ "/filestore/dups",
75
+ "/filestore/ls",
76
+ "/filestore/verify",
77
+ "/files/write",
78
+ "/get",
79
+ "/id",
80
+ "/key",
81
+ "/key/gen",
82
+ "/key/list",
83
+ "/key/rename",
84
+ "/key/rm",
85
+ "/log",
86
+ "/log/level",
87
+ "/log/ls",
88
+ "/log/tail",
89
+ "/ls",
90
+ "/mount",
91
+ "/name",
92
+ "/name/publish",
93
+ "/name/pubsub",
94
+ "/name/pubsub/state",
95
+ "/name/pubsub/subs",
96
+ "/name/pubsub/cancel",
97
+ "/name/resolve",
98
+ "/object",
99
+ "/object/data",
100
+ "/object/diff",
101
+ "/object/get",
102
+ "/object/links",
103
+ "/object/new",
104
+ "/object/patch",
105
+ "/object/patch/add-link",
106
+ "/object/patch/append-data",
107
+ "/object/patch/rm-link",
108
+ "/object/patch/set-data",
109
+ "/object/put",
110
+ "/object/stat",
111
+ "/p2p",
112
+ "/p2p/listener",
113
+ "/p2p/listener/close",
114
+ "/p2p/listener/ls",
115
+ "/p2p/listener/open",
116
+ "/p2p/stream",
117
+ "/p2p/stream/close",
118
+ "/p2p/stream/dial",
119
+ "/p2p/stream/ls",
120
+ "/pin",
121
+ "/pin/add",
122
+ "/ping",
123
+ "/pin/ls",
124
+ "/pin/rm",
125
+ "/pin/update",
126
+ "/pin/verify",
127
+ "/pubsub",
128
+ "/pubsub/ls",
129
+ "/pubsub/peers",
130
+ "/pubsub/pub",
131
+ "/pubsub/sub",
132
+ "/refs",
133
+ "/refs/local",
134
+ "/repo",
135
+ "/repo/fsck",
136
+ "/repo/gc",
137
+ "/repo/stat",
138
+ "/repo/verify",
139
+ "/repo/version",
140
+ "/resolve",
141
+ "/shutdown",
142
+ "/stats",
143
+ "/stats/bitswap",
144
+ "/stats/bw",
145
+ "/stats/repo",
146
+ "/swarm",
147
+ "/swarm/addrs",
148
+ "/swarm/addrs/listen",
149
+ "/swarm/addrs/local",
150
+ "/swarm/connect",
151
+ "/swarm/disconnect",
152
+ "/swarm/filters",
153
+ "/swarm/filters/add",
154
+ "/swarm/filters/rm",
155
+ "/swarm/peers",
156
+ "/tar",
157
+ "/tar/add",
158
+ "/tar/cat",
159
+ "/update",
160
+ "/version",
161
+ }
162
+
163
+ cmdSet := make(map[string]struct{})
164
+ collectPaths("", Root, cmdSet)
165
+
166
+ for _, path := range list {
167
+ if _, ok := cmdSet[path]; !ok {
168
+ t.Errorf("%q not in result", path)
169
+ } else {
170
+ delete(cmdSet, path)
171
+ }
172
+ }
173
+
174
+ for path := range cmdSet {
175
+ t.Errorf("%q in result but shouldn't be", path)
176
+ }
177
+
178
+ for _, path := range list {
179
+ path = path[1:] // remove leading slash
180
+ split := strings.Split(path, "/")
181
+ sub, err := Root.Get(split)
182
+ if err != nil {
183
+ t.Errorf("error getting subcommand %q: %v", path, err)
184
+ } else if sub == nil {
185
+ t.Errorf("subcommand %q is nil even though there was no error", path)
186
+ }
187
+ }
188
+}
core/commands/filestore.go
+1
-1
@@ -12,8 +12,8 @@ import (
12
"github.com/ipfs/go-ipfs/filestore"
13
14
lgc "github.com/ipfs/go-ipfs/commands/legacy"
15
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
15
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
16
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
17
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
18
)
19
core/commands/get.go
+1
-1
@@ -16,8 +16,8 @@ import (
16
tar "github.com/ipfs/go-ipfs/thirdparty/tar"
17
uarchive "github.com/ipfs/go-ipfs/unixfs/archive"
18
19
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
19
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
20
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
21
"gx/ipfs/QmeWjRodbcZFKe5tMN7poEx3izym6osrLSnTLf9UjJZBbs/pb"
22
)
23
core/commands/get_test.go
+1
-1
@@ -4,8 +4,8 @@ import (
4
"context"
5
"testing"
6
7
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
7
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
8
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
9
)
10
11
func TestGetOutputPath(t *testing.T) {
core/commands/helptext_test.go
+1
-1
@@ -4,7 +4,7 @@ import (
4
"strings"
5
"testing"
6
7
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
7
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
8
)
9
10
func checkHelptextRecursive(t *testing.T, name []string, c *cmds.Command) {
core/commands/pubsub.go
+1
-1
@@ -12,9 +12,9 @@ import (
12
core "github.com/ipfs/go-ipfs/core"
13
14
floodsub "gx/ipfs/QmP1T1SGU6276R2MHKP2owbck37Fnzd6ZkpyNJvnG2LoTG/go-libp2p-floodsub"
15
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
15
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
16
pstore "gx/ipfs/QmYijbtjCxFEjSXaudaQAUz3LN5VKLssm8WCUsRoqzXmQR/go-libp2p-peerstore"
17
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
18
blocks "gx/ipfs/QmYsEQydGrsxNZfAiskvQ76N2xE9hDQtSAkRSynwMiUK3c/go-block-format"
19
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
20
)
core/commands/repo.go
+1
-1
@@ -18,8 +18,8 @@ import (
18
lockfile "github.com/ipfs/go-ipfs/repo/fsrepo/lock"
19
20
lgc "github.com/ipfs/go-ipfs/commands/legacy"
21
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
21
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
22
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
23
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
24
)
25
core/commands/root.go
+1
-1
@@ -13,8 +13,8 @@ import (
13
14
lgc "github.com/ipfs/go-ipfs/commands/legacy"
15
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
16
- "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
16
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
17
+ "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
18
)
19
20
var log = logging.Logger("core/commands")
core/commands/stat.go
+1
-1
@@ -8,9 +8,9 @@ import (
8
"time"
9
10
humanize "gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
11
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
11
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
12
peer "gx/ipfs/QmWNY7dV54ZDYmTA1ykVdwNCqC11mpU4zSUp6XDpLTH9eG/go-libp2p-peer"
13
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
14
protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol"
15
metrics "gx/ipfs/QmaL2WYJGbWKqHoLujoi9GQ5jj4JVFrBqHUBWmEYzJPVWT/go-libp2p-metrics"
16
)
core/corehttp/commands.go
+15
-14
@@ -15,15 +15,14 @@ import (
15
path "github.com/ipfs/go-ipfs/path"
16
config "github.com/ipfs/go-ipfs/repo/config"
17
18
- cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
19
- cmdsHttp "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/http"
18
+ cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
19
+ cmdsHttp "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/http"
20
)
21
22
var (
23
errApiVersionMismatch = errors.New("api version mismatch")
24
)
25
26
-const apiPath = "/api/v0"
26
const originEnvKey = "API_ORIGIN"
27
const originEnvKeyDeprecate = `You are using the ` + originEnvKey + `ENV Variable.
28
This functionality is deprecated, and will be removed in future versions.
@@ -116,6 +115,7 @@ func commandsOption(cctx oldcmds.Context, command *cmds.Command) ServeOption {
115
116
cfg := cmdsHttp.NewServerConfig()
117
cfg.SetAllowedMethods("GET", "POST", "PUT")
118
+ cfg.APIPath = APIPath
119
rcfg, err := n.Repo.Config()
120
if err != nil {
121
return nil, err
@@ -127,7 +127,7 @@ func commandsOption(cctx oldcmds.Context, command *cmds.Command) ServeOption {
127
patchCORSVars(cfg, l.Addr())
128
129
cmdHandler := cmdsHttp.NewHandler(&cctx, command, cfg)
130
- mux.Handle(APIPath, cmdHandler)
130
+ mux.Handle(APIPath+"/", cmdHandler)
131
return mux, nil
132
}
133
}
@@ -146,21 +146,22 @@ func CheckVersionOption() ServeOption {
146
147
return ServeOption(func(n *core.IpfsNode, l net.Listener, next *http.ServeMux) (*http.ServeMux, error) {
148
mux := http.NewServeMux()
149
- mux.HandleFunc(APIPath+"/", func(w http.ResponseWriter, r *http.Request) {
150
- pth := path.SplitList(r.URL.Path[len(APIPath):])
151
- // backwards compatibility to previous version check
152
- if pth[1] != "version" {
153
- clientVersion := r.UserAgent()
154
- // skips check if client is not go-ipfs
155
- if clientVersion != "" && strings.Contains(clientVersion, "/go-ipfs/") && daemonVersion != clientVersion {
156
- http.Error(w, fmt.Sprintf("%s (%s != %s)", errApiVersionMismatch, daemonVersion, clientVersion), http.StatusBadRequest)
157
- return
149
+ mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
150
+ if strings.HasPrefix(r.URL.Path, APIPath) {
151
+ pth := path.SplitList(r.URL.Path[len(APIPath):])
152
+ // backwards compatibility to previous version check
153
+ if pth[1] != "version" {
154
+ clientVersion := r.UserAgent()
155
+ // skips check if client is not go-ipfs
156
+ if clientVersion != "" && strings.Contains(clientVersion, "/go-ipfs/") && daemonVersion != clientVersion {
157
+ http.Error(w, fmt.Sprintf("%s (%s != %s)", errApiVersionMismatch, daemonVersion, clientVersion), http.StatusBadRequest)
158
+ return
159
+ }
160
}
161
}
162
163
next.ServeHTTP(w, r)
164
})
163
- mux.HandleFunc("/", next.ServeHTTP)
165
166
return mux, nil
167
})
package.json
+1
-1
@@ -414,7 +414,7 @@
414
"version": "2.1.2"
415
},
416
{
417
- "hash": "QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K",
417
+ "hash": "QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps",
418
"name": "go-ipfs-cmds",
419
"version": "0.5.0-dev"
420
},
test/sharness/t0040-add-and-cat.sh
+1
-1
@@ -554,7 +554,7 @@ test_add_cat_expensive "--cid-version=1" "zdj7WcatQrtuE4WMkS4XsfsMixuQN2po4irkYh
554
# encoded with the blake2b-256 hash funtion
555
test_add_cat_expensive '--hash=blake2b-256' "zDMZof1kwndounDzQCANUHjiE3zt1mPEgx7RE3JTHoZrRRa79xcv"
556
557
-test_add_named_pipe " Post http://$API_ADDR/api/v0/add?encoding=json&progress=true&r=true&stream-channels=true:"
557
+test_add_named_pipe " Post http://$API_ADDR/api/v0/add?chunker=size-262144&cid-version=0&encoding=json&hash=sha2-256&pin=true&progress=true&recursive=true&stream-channels=true:"
558
559
test_add_pwd_is_symlink
560