1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-05-31 07:16:44 +08:00

cmds: use MakeTypedEncoder

License: MIT
Signed-off-by: Overbool <overbool.xu@gmail.com>
This commit is contained in:
Overbool
2018-11-10 11:57:48 +08:00
parent 085217eb5e
commit 51fa833fda
11 changed files with 86 additions and 200 deletions

View File

@ -7,22 +7,21 @@ import (
"path"
"sort"
"github.com/ipfs/go-ipfs/commands"
"github.com/ipfs/go-ipfs/core/commands/cmdenv"
"github.com/ipfs/go-ipfs/core/commands/e"
"github.com/ipfs/go-ipfs/repo"
"github.com/ipfs/go-ipfs/repo/fsrepo"
commands "github.com/ipfs/go-ipfs/commands"
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
repo "github.com/ipfs/go-ipfs/repo"
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
ma "gx/ipfs/QmRKLtwMw131aK7ugC3G7ybpumMz78YrJe5dzneyindvG1/go-multiaddr"
inet "gx/ipfs/QmRKbEchaYADxSCyyjhDh4cTrUby8ftXUb8MRLBTHQYupw/go-libp2p-net"
mafilter "gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter"
iaddr "gx/ipfs/QmUSE3APe1pMFVsUBZUZaKQKERiPteCWvTAERtVQmtXzgE/go-ipfs-addr"
pstore "gx/ipfs/QmUymf8fJtideyv3z727BcZUifGBjMZMpCJqu3Gxk5aRUk/go-libp2p-peerstore"
"gx/ipfs/Qma6uuSyjkecGhMFFLfzyJDPyoDtNJSHJNweDccZhaWkgU/go-ipfs-cmds"
"gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config"
"gx/ipfs/QmcYC4ayKi7bq8xecEZxHVEuTL6HREZWTTErrSRd1S3Spz/go-libp2p-swarm"
cmds "gx/ipfs/Qma6uuSyjkecGhMFFLfzyJDPyoDtNJSHJNweDccZhaWkgU/go-ipfs-cmds"
config "gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config"
swarm "gx/ipfs/QmcYC4ayKi7bq8xecEZxHVEuTL6HREZWTTErrSRd1S3Spz/go-libp2p-swarm"
peer "gx/ipfs/QmcqU6QUDSXprb1518vYDGczrTJTyGwLG9eUa5iNX4xUtS/go-libp2p-peer"
"gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
)
type stringList struct {
@ -129,12 +128,7 @@ var swarmPeersCmd = &cmds.Command{
return cmds.EmitOnce(res, &out)
},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(func(req *cmds.Request, w io.Writer, v interface{}) error {
ci, ok := v.(*connInfos)
if !ok {
return e.TypeErr(ci, v)
}
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, ci *connInfos) error {
pipfs := ma.ProtocolWithCode(ma.P_IPFS).Name
for _, info := range ci.Peers {
fmt.Fprintf(w, "%s/%s/%s", info.Addr, pipfs, info.Peer)
@ -248,26 +242,22 @@ var swarmAddrsCmd = &cmds.Command{
return cmds.EmitOnce(res, &addrMap{Addrs: out})
},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(func(req *cmds.Request, w io.Writer, v interface{}) error {
m, ok := v.(*addrMap)
if !ok {
return e.TypeErr(m, v)
}
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, am *addrMap) error {
// sort the ids first
ids := make([]string, 0, len(m.Addrs))
for p := range m.Addrs {
ids := make([]string, 0, len(am.Addrs))
for p := range am.Addrs {
ids = append(ids, p)
}
sort.Sort(sort.StringSlice(ids))
for _, p := range ids {
paddrs := m.Addrs[p]
paddrs := am.Addrs[p]
fmt.Fprintf(w, "%s (%d)\n", p, len(paddrs))
for _, addr := range paddrs {
fmt.Fprintf(w, "\t"+addr+"\n")
}
}
return nil
}),
},
@ -314,7 +304,7 @@ var swarmAddrsLocalCmd = &cmds.Command{
},
Type: stringList{},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(stringListEncoder),
cmds.Text: cmds.MakeTypedEncoder(stringListEncoder),
},
}
@ -346,7 +336,7 @@ var swarmAddrsListenCmd = &cmds.Command{
},
Type: stringList{},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(stringListEncoder),
cmds.Text: cmds.MakeTypedEncoder(stringListEncoder),
},
}
@ -391,7 +381,7 @@ ipfs swarm connect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3
return cmds.EmitOnce(res, &stringList{output})
},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(stringListEncoder),
cmds.Text: cmds.MakeTypedEncoder(stringListEncoder),
},
Type: stringList{},
}
@ -436,7 +426,7 @@ it will reconnect.
return cmds.EmitOnce(res, &stringList{output})
},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(stringListEncoder),
cmds.Text: cmds.MakeTypedEncoder(stringListEncoder),
},
Type: stringList{},
}
@ -532,7 +522,7 @@ Filters default to those specified under the "Swarm.AddrFilters" config key.
return cmds.EmitOnce(res, &stringList{output})
},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(stringListEncoder),
cmds.Text: cmds.MakeTypedEncoder(stringListEncoder),
},
Type: stringList{},
}
@ -596,7 +586,7 @@ add your filters to the ipfs config file.
return cmds.EmitOnce(res, &stringList{added})
},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(stringListEncoder),
cmds.Text: cmds.MakeTypedEncoder(stringListEncoder),
},
Type: stringList{},
}
@ -669,7 +659,7 @@ remove your filters from the ipfs config file.
return cmds.EmitOnce(res, &stringList{removed})
},
Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(stringListEncoder),
cmds.Text: cmds.MakeTypedEncoder(stringListEncoder),
},
Type: stringList{},
}