1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-08-06 11:31:54 +08:00

go test passes, sharness fails

pass API path to cmds, fix options in add.

License: MIT
Signed-off-by: keks <keks@cryptoscope.com>
This commit is contained in:
keks
2017-12-01 10:40:26 +01:00
committed by Jeromy
parent 9965861b86
commit 84101c8a2a
29 changed files with 255 additions and 59 deletions

View File

@ -18,16 +18,16 @@ import (
corehttp "github.com/ipfs/go-ipfs/core/corehttp"
corerepo "github.com/ipfs/go-ipfs/core/corerepo"
nodeMount "github.com/ipfs/go-ipfs/fuse/node"
config "github.com/ipfs/go-ipfs/repo/config"
//config "github.com/ipfs/go-ipfs/repo/config"
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
migrate "github.com/ipfs/go-ipfs/repo/fsrepo/migrations"
"gx/ipfs/QmSGL5Uoa6gKHgBBwQG8u1CWKUC8ZnwaZiLgFVTFBR2bxr/go-multiaddr-net"
mprome "gx/ipfs/QmSk46nSD78YiuNojYMS8NW6hSCjH95JajqqzzoychZgef/go-metrics-prometheus"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
ma "gx/ipfs/QmW8s4zTsUoX1Q6CeYxVKPyqSKbF7H1YDUyTostBtZ8DaG/go-multiaddr"
"gx/ipfs/QmX3QZ5jHEPidwUrymXV1iSCSUhdGxj15sm2gP4jKMef7B/client_golang/prometheus"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
iconn "gx/ipfs/Qmf82zCaYV8bkztRRoGwwSHVkaYtP2UKBnhpjJz1uFGJjQ/go-libp2p-interface-conn"
)
@ -434,8 +434,8 @@ func serveHTTPApi(req *cmds.Request, cctx *oldcmds.Context) (error, <-chan error
var opts = []corehttp.ServeOption{
corehttp.MetricsCollectionOption("api"),
corehttp.CommandsOption(*cctx),
corehttp.CheckVersionOption(),
corehttp.ServerNameOption("go-ipfs/" + config.CurrentVersionNumber),
//corehttp.CheckVersionOption(),
//corehttp.ServerNameOption("go-ipfs/" + config.CurrentVersionNumber),
corehttp.WebUIOption,
gatewayOpt,
corehttp.VersionOption(),

View File

@ -6,7 +6,7 @@ import (
commands "github.com/ipfs/go-ipfs/core/commands"
lgc "github.com/ipfs/go-ipfs/commands/legacy"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
// This is the CLI root, used for executing commands accessible to CLI clients.

View File

@ -21,6 +21,7 @@ import (
oldcmds "github.com/ipfs/go-ipfs/commands"
core "github.com/ipfs/go-ipfs/core"
coreCmds "github.com/ipfs/go-ipfs/core/commands"
corehttp "github.com/ipfs/go-ipfs/core/corehttp"
"github.com/ipfs/go-ipfs/plugin/loader"
repo "github.com/ipfs/go-ipfs/repo"
config "github.com/ipfs/go-ipfs/repo/config"
@ -30,12 +31,12 @@ import (
manet "gx/ipfs/QmSGL5Uoa6gKHgBBwQG8u1CWKUC8ZnwaZiLgFVTFBR2bxr/go-multiaddr-net"
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
loggables "gx/ipfs/QmSvcDkiRwB8LuMhUtnvhum2C851Mproo75ZDD19jx43tD/go-libp2p-loggables"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/cli"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/http"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
ma "gx/ipfs/QmW8s4zTsUoX1Q6CeYxVKPyqSKbF7H1YDUyTostBtZ8DaG/go-multiaddr"
osh "gx/ipfs/QmXuBJ7DR6k3rmUEKtvVMhwjmXDuJgXXPUt4LQXKBMsU93/go-os-helper"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/cli"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/http"
)
// log is the command logger
@ -269,11 +270,11 @@ func (i *cmdInvocation) Parse(ctx context.Context, args []string) error {
// if no encoding was specified by user, default to plaintext encoding
// (if command doesn't support plaintext, use JSON instead)
if enc := i.req.Options[cmds.EncShort]; enc == "" {
if enc := i.req.Options[cmds.EncLong]; enc == "" {
if i.req.Command.Encoders != nil && i.req.Command.Encoders[cmds.Text] != nil {
i.req.SetOption(cmds.EncShort, cmds.Text)
i.req.SetOption(cmds.EncLong, cmds.Text)
} else {
i.req.SetOption(cmds.EncShort, cmds.JSON)
i.req.SetOption(cmds.EncLong, cmds.JSON)
}
}
@ -313,7 +314,7 @@ func callCommand(ctx context.Context, req *cmds.Request, root *cmds.Command, cct
return err
}
encTypeStr, _ := req.Options[cmds.EncShort].(string)
encTypeStr, _ := req.Options[cmds.EncLong].(string)
encType := cmds.EncodingType(encTypeStr)
var (
@ -658,7 +659,7 @@ func apiClientForAddr(addr ma.Multiaddr) (http.Client, error) {
return nil, err
}
return http.NewClient(host), nil
return http.NewClient(host, http.ClientWithAPIPrefix(corehttp.APIPath)), nil
}
func isConnRefused(err error) bool {

View File

@ -17,8 +17,8 @@ import (
"github.com/ipfs/go-ipfs/path"
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
var log = logging.Logger("command")

View File

@ -3,8 +3,8 @@ package commands
import (
"testing"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
func noop(req Request, res Response) {
@ -59,7 +59,7 @@ func TestOptionValidation(t *testing.T) {
}
req, _ = NewRequest(nil, nil, nil, nil, nil, opts)
req.SetOption(cmds.EncShort, "json")
req.SetOption(cmds.EncLong, "json")
res = cmd.Call(req)
if res.Error() != nil {
t.Error("Should have passed")

View File

@ -3,7 +3,7 @@ package legacy
import (
"io"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
oldcmds "github.com/ipfs/go-ipfs/commands"
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"

View File

@ -4,7 +4,7 @@ import (
"io"
"runtime/debug"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
oldcmds "github.com/ipfs/go-ipfs/commands"
)

View File

@ -7,8 +7,8 @@ import (
"testing"
oldcmds "github.com/ipfs/go-ipfs/commands"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
type WriteNopCloser struct {

View File

@ -7,9 +7,9 @@ import (
"os"
"reflect"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit/files"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
oldcmds "github.com/ipfs/go-ipfs/commands"
)

View File

@ -7,8 +7,8 @@ import (
"reflect"
"sync"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
oldcmds "github.com/ipfs/go-ipfs/commands"
)
@ -47,6 +47,8 @@ func (rw *responseWrapper) Output() interface{} {
case io.Reader:
// if it's a reader, set it
rw.out = v
case cmds.Single:
rw.out = v.Value
default:
// if it is something else, create a channel and copy values from next in there
ch := make(chan interface{})

View File

@ -9,8 +9,8 @@ import (
"os"
"strings"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
// ErrorType signfies a category of errors
@ -149,7 +149,7 @@ func (r *response) Marshal() (io.Reader, error) {
return bytes.NewReader([]byte{}), nil
}
enc, found, err := r.req.Option(cmds.EncShort).String()
enc, found, err := r.req.Option(cmds.EncLong).String()
if err != nil {
return nil, err
}

View File

@ -6,8 +6,8 @@ import (
"strings"
"testing"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
type TestOutput struct {
@ -29,7 +29,7 @@ func TestMarshalling(t *testing.T) {
t.Error("Should have failed (no encoding type specified in request)")
}
req.SetOption(cmds.EncShort, JSON)
req.SetOption(cmds.EncLong, JSON)
reader, err := res.Marshal()
if err != nil {

View File

@ -18,10 +18,10 @@ import (
mfs "github.com/ipfs/go-ipfs/mfs"
ft "github.com/ipfs/go-ipfs/unixfs"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit/files"
mh "gx/ipfs/QmYeKnKpubCMRiq3PGZcTREErthbb5Q9cXsCoSkD9bjEBd/go-multihash"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
"gx/ipfs/QmeWjRodbcZFKe5tMN7poEx3izym6osrLSnTLf9UjJZBbs/pb"
)
@ -162,7 +162,6 @@ You can now check what blocks have been created by:
return nil
},
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env interface{}) {
fmt.Printf("%#v\n", req)
n, err := GetNode(env)
if err != nil {
res.SetError(err, cmdkit.ErrNormal)
@ -202,6 +201,15 @@ You can now check what blocks have been created by:
return
}
if hfset && hashFunStr != "sha2-256" && cidVer == 0 {
cidVer = 1
}
if cidVer > 0 && !rbset {
rawblks = true
}
// if rawblocks is not explicitly set but nocopy is, set rawblocks
if nocopy && !rbset {
rawblks = true
}
@ -211,10 +219,6 @@ You can now check what blocks have been created by:
return
}
if hfset && hashFunStr != "sha2-256" && cidVer == 0 {
cidVer = 1
}
prefix, err := dag.PrefixForCidVersion(cidVer)
if err != nil {
res.SetError(err, cmdkit.ErrNormal)

View File

@ -12,9 +12,9 @@ import (
decision "github.com/ipfs/go-ipfs/exchange/bitswap/decision"
"gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
peer "gx/ipfs/QmWNY7dV54ZDYmTA1ykVdwNCqC11mpU4zSUp6XDpLTH9eG/go-libp2p-peer"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
)

View File

@ -11,9 +11,9 @@ import (
util "github.com/ipfs/go-ipfs/blocks/blockstore/util"
e "github.com/ipfs/go-ipfs/core/commands/e"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
mh "gx/ipfs/QmYeKnKpubCMRiq3PGZcTREErthbb5Q9cXsCoSkD9bjEBd/go-multihash"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
blocks "gx/ipfs/QmYsEQydGrsxNZfAiskvQ76N2xE9hDQtSAkRSynwMiUK3c/go-block-format"
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
)

View File

@ -9,8 +9,8 @@ import (
core "github.com/ipfs/go-ipfs/core"
coreunix "github.com/ipfs/go-ipfs/core/coreunix"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
const progressBarMinSize = 1024 * 1024 * 8 // show progress bar for outputs > 8MiB

View File

@ -14,8 +14,8 @@ import (
// oldcmds "github.com/ipfs/go-ipfs/commands"
e "github.com/ipfs/go-ipfs/core/commands/e"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
type commandEncoder struct {

View File

@ -0,0 +1,188 @@
package commands
import (
"strings"
"testing"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
func collectPaths(prefix string, cmd *cmds.Command, out map[string]struct{}) {
for name, sub := range cmd.Subcommands {
path := prefix + "/" + name
out[path] = struct{}{}
collectPaths(path, sub, out)
}
}
func TestCommands(t *testing.T) {
list := []string{
"/add",
"/bitswap",
"/bitswap/ledger",
"/bitswap/reprovide",
"/bitswap/stat",
"/bitswap/unwant",
"/bitswap/wantlist",
"/block",
"/block/get",
"/block/put",
"/block/rm",
"/block/stat",
"/bootstrap",
"/bootstrap/add",
"/bootstrap/add/default",
"/bootstrap/list",
"/bootstrap/rm",
"/bootstrap/rm/all",
"/cat",
"/commands",
"/config",
"/config/edit",
"/config/replace",
"/config/show",
"/dag",
"/dag/get",
"/dag/put",
"/dag/resolve",
"/dht",
"/dht/findpeer",
"/dht/findprovs",
"/dht/get",
"/dht/provide",
"/dht/put",
"/dht/query",
"/diag",
"/diag/cmds",
"/diag/cmds/clear",
"/diag/cmds/set-time",
"/diag/sys",
"/dns",
"/file",
"/file/ls",
"/files",
"/files/chcid",
"/files/cp",
"/files/flush",
"/files/ls",
"/files/mkdir",
"/files/mv",
"/files/read",
"/files/rm",
"/files/stat",
"/filestore",
"/filestore/dups",
"/filestore/ls",
"/filestore/verify",
"/files/write",
"/get",
"/id",
"/key",
"/key/gen",
"/key/list",
"/key/rename",
"/key/rm",
"/log",
"/log/level",
"/log/ls",
"/log/tail",
"/ls",
"/mount",
"/name",
"/name/publish",
"/name/pubsub",
"/name/pubsub/state",
"/name/pubsub/subs",
"/name/pubsub/cancel",
"/name/resolve",
"/object",
"/object/data",
"/object/diff",
"/object/get",
"/object/links",
"/object/new",
"/object/patch",
"/object/patch/add-link",
"/object/patch/append-data",
"/object/patch/rm-link",
"/object/patch/set-data",
"/object/put",
"/object/stat",
"/p2p",
"/p2p/listener",
"/p2p/listener/close",
"/p2p/listener/ls",
"/p2p/listener/open",
"/p2p/stream",
"/p2p/stream/close",
"/p2p/stream/dial",
"/p2p/stream/ls",
"/pin",
"/pin/add",
"/ping",
"/pin/ls",
"/pin/rm",
"/pin/update",
"/pin/verify",
"/pubsub",
"/pubsub/ls",
"/pubsub/peers",
"/pubsub/pub",
"/pubsub/sub",
"/refs",
"/refs/local",
"/repo",
"/repo/fsck",
"/repo/gc",
"/repo/stat",
"/repo/verify",
"/repo/version",
"/resolve",
"/shutdown",
"/stats",
"/stats/bitswap",
"/stats/bw",
"/stats/repo",
"/swarm",
"/swarm/addrs",
"/swarm/addrs/listen",
"/swarm/addrs/local",
"/swarm/connect",
"/swarm/disconnect",
"/swarm/filters",
"/swarm/filters/add",
"/swarm/filters/rm",
"/swarm/peers",
"/tar",
"/tar/add",
"/tar/cat",
"/update",
"/version",
}
cmdSet := make(map[string]struct{})
collectPaths("", Root, cmdSet)
for _, path := range list {
if _, ok := cmdSet[path]; !ok {
t.Errorf("%q not in result", path)
} else {
delete(cmdSet, path)
}
}
for path := range cmdSet {
t.Errorf("%q in result but shouldn't be", path)
}
for _, path := range list {
path = path[1:] // remove leading slash
split := strings.Split(path, "/")
sub, err := Root.Get(split)
if err != nil {
t.Errorf("error getting subcommand %q: %v", path, err)
} else if sub == nil {
t.Errorf("subcommand %q is nil even though there was no error", path)
}
}
}

View File

@ -12,8 +12,8 @@ import (
"github.com/ipfs/go-ipfs/filestore"
lgc "github.com/ipfs/go-ipfs/commands/legacy"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
)

View File

@ -16,8 +16,8 @@ import (
tar "github.com/ipfs/go-ipfs/thirdparty/tar"
uarchive "github.com/ipfs/go-ipfs/unixfs/archive"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
"gx/ipfs/QmeWjRodbcZFKe5tMN7poEx3izym6osrLSnTLf9UjJZBbs/pb"
)

View File

@ -4,8 +4,8 @@ import (
"context"
"testing"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
func TestGetOutputPath(t *testing.T) {

View File

@ -4,7 +4,7 @@ import (
"strings"
"testing"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
func checkHelptextRecursive(t *testing.T, name []string, c *cmds.Command) {

View File

@ -12,9 +12,9 @@ import (
core "github.com/ipfs/go-ipfs/core"
floodsub "gx/ipfs/QmP1T1SGU6276R2MHKP2owbck37Fnzd6ZkpyNJvnG2LoTG/go-libp2p-floodsub"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
pstore "gx/ipfs/QmYijbtjCxFEjSXaudaQAUz3LN5VKLssm8WCUsRoqzXmQR/go-libp2p-peerstore"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
blocks "gx/ipfs/QmYsEQydGrsxNZfAiskvQ76N2xE9hDQtSAkRSynwMiUK3c/go-block-format"
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
)

View File

@ -18,8 +18,8 @@ import (
lockfile "github.com/ipfs/go-ipfs/repo/fsrepo/lock"
lgc "github.com/ipfs/go-ipfs/commands/legacy"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
)

View File

@ -13,8 +13,8 @@ import (
lgc "github.com/ipfs/go-ipfs/commands/legacy"
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
)
var log = logging.Logger("core/commands")

View File

@ -8,9 +8,9 @@ import (
"time"
humanize "gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
peer "gx/ipfs/QmWNY7dV54ZDYmTA1ykVdwNCqC11mpU4zSUp6XDpLTH9eG/go-libp2p-peer"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol"
metrics "gx/ipfs/QmaL2WYJGbWKqHoLujoi9GQ5jj4JVFrBqHUBWmEYzJPVWT/go-libp2p-metrics"
)

View File

@ -15,15 +15,14 @@ import (
path "github.com/ipfs/go-ipfs/path"
config "github.com/ipfs/go-ipfs/repo/config"
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
cmdsHttp "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/http"
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
cmdsHttp "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/http"
)
var (
errApiVersionMismatch = errors.New("api version mismatch")
)
const apiPath = "/api/v0"
const originEnvKey = "API_ORIGIN"
const originEnvKeyDeprecate = `You are using the ` + originEnvKey + `ENV Variable.
This functionality is deprecated, and will be removed in future versions.
@ -116,6 +115,7 @@ func commandsOption(cctx oldcmds.Context, command *cmds.Command) ServeOption {
cfg := cmdsHttp.NewServerConfig()
cfg.SetAllowedMethods("GET", "POST", "PUT")
cfg.APIPath = APIPath
rcfg, err := n.Repo.Config()
if err != nil {
return nil, err
@ -127,7 +127,7 @@ func commandsOption(cctx oldcmds.Context, command *cmds.Command) ServeOption {
patchCORSVars(cfg, l.Addr())
cmdHandler := cmdsHttp.NewHandler(&cctx, command, cfg)
mux.Handle(APIPath, cmdHandler)
mux.Handle(APIPath+"/", cmdHandler)
return mux, nil
}
}
@ -146,21 +146,22 @@ func CheckVersionOption() ServeOption {
return ServeOption(func(n *core.IpfsNode, l net.Listener, next *http.ServeMux) (*http.ServeMux, error) {
mux := http.NewServeMux()
mux.HandleFunc(APIPath+"/", func(w http.ResponseWriter, r *http.Request) {
pth := path.SplitList(r.URL.Path[len(APIPath):])
// backwards compatibility to previous version check
if pth[1] != "version" {
clientVersion := r.UserAgent()
// skips check if client is not go-ipfs
if clientVersion != "" && strings.Contains(clientVersion, "/go-ipfs/") && daemonVersion != clientVersion {
http.Error(w, fmt.Sprintf("%s (%s != %s)", errApiVersionMismatch, daemonVersion, clientVersion), http.StatusBadRequest)
return
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if strings.HasPrefix(r.URL.Path, APIPath) {
pth := path.SplitList(r.URL.Path[len(APIPath):])
// backwards compatibility to previous version check
if pth[1] != "version" {
clientVersion := r.UserAgent()
// skips check if client is not go-ipfs
if clientVersion != "" && strings.Contains(clientVersion, "/go-ipfs/") && daemonVersion != clientVersion {
http.Error(w, fmt.Sprintf("%s (%s != %s)", errApiVersionMismatch, daemonVersion, clientVersion), http.StatusBadRequest)
return
}
}
}
next.ServeHTTP(w, r)
})
mux.HandleFunc("/", next.ServeHTTP)
return mux, nil
})

View File

@ -414,7 +414,7 @@
"version": "2.1.2"
},
{
"hash": "QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K",
"hash": "QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps",
"name": "go-ipfs-cmds",
"version": "0.5.0-dev"
},

View File

@ -554,7 +554,7 @@ test_add_cat_expensive "--cid-version=1" "zdj7WcatQrtuE4WMkS4XsfsMixuQN2po4irkYh
# encoded with the blake2b-256 hash funtion
test_add_cat_expensive '--hash=blake2b-256' "zDMZof1kwndounDzQCANUHjiE3zt1mPEgx7RE3JTHoZrRRa79xcv"
test_add_named_pipe " Post http://$API_ADDR/api/v0/add?encoding=json&progress=true&r=true&stream-channels=true:"
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:"
test_add_pwd_is_symlink