提交 bc4a9ef7 作者: Overbool

cmds/bootstrap: use EmitOnce directly

License: MIT
Signed-off-by: 's avatarOverbool <overbool.xu@gmail.com>
上级 bde95077
...@@ -5,13 +5,13 @@ import ( ...@@ -5,13 +5,13 @@ import (
"io" "io"
"sort" "sort"
oldcmds "github.com/ipfs/go-ipfs/commands" cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
repo "github.com/ipfs/go-ipfs/repo" repo "github.com/ipfs/go-ipfs/repo"
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
cmds "gx/ipfs/QmSXUokcP4TJpFfqozT69AVAYRtzXVMUjzQVkYX41R9Svs/go-ipfs-cmds" cmds "gx/ipfs/Qma6uuSyjkecGhMFFLfzyJDPyoDtNJSHJNweDccZhaWkgU/go-ipfs-cmds"
config "gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config" config "gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config"
"gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
) )
type BootstrapOutput struct { type BootstrapOutput struct {
...@@ -75,6 +75,10 @@ in the bootstrap list). ...@@ -75,6 +75,10 @@ in the bootstrap list).
inputPeers = defltPeers inputPeers = defltPeers
} else { } else {
if err := req.ParseBodyArgs(); err != nil {
return err
}
parsedPeers, err := config.ParseBootstrapPeers(req.Arguments) parsedPeers, err := config.ParseBootstrapPeers(req.Arguments)
if err != nil { if err != nil {
return err return err
...@@ -87,8 +91,12 @@ in the bootstrap list). ...@@ -87,8 +91,12 @@ in the bootstrap list).
return errors.New("no bootstrap peers to add") return errors.New("no bootstrap peers to add")
} }
ctx := env.(*oldcmds.Context) cfgRoot, err := cmdenv.GetConfigRoot(env)
r, err := fsrepo.Open(ctx.ConfigRoot) if err != nil {
return err
}
r, err := fsrepo.Open(cfgRoot)
if err != nil { if err != nil {
return err return err
} }
...@@ -103,7 +111,7 @@ in the bootstrap list). ...@@ -103,7 +111,7 @@ in the bootstrap list).
return err return err
} }
return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(added)}) return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(added)})
}, },
Type: BootstrapOutput{}, Type: BootstrapOutput{},
Encoders: cmds.EncoderMap{ Encoders: cmds.EncoderMap{
...@@ -125,8 +133,12 @@ in the bootstrap list).`, ...@@ -125,8 +133,12 @@ in the bootstrap list).`,
return err return err
} }
ctx := env.(*oldcmds.Context) cfgRoot, err := cmdenv.GetConfigRoot(env)
r, err := fsrepo.Open(ctx.ConfigRoot) if err != nil {
return err
}
r, err := fsrepo.Open(cfgRoot)
if err != nil { if err != nil {
return err return err
} }
...@@ -142,7 +154,7 @@ in the bootstrap list).`, ...@@ -142,7 +154,7 @@ in the bootstrap list).`,
return err return err
} }
return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(added)}) return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(added)})
}, },
Type: BootstrapOutput{}, Type: BootstrapOutput{},
Encoders: cmds.EncoderMap{ Encoders: cmds.EncoderMap{
...@@ -175,8 +187,12 @@ var bootstrapRemoveCmd = &cmds.Command{ ...@@ -175,8 +187,12 @@ var bootstrapRemoveCmd = &cmds.Command{
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
all, _ := req.Options[bootstrapAllOptionName].(bool) all, _ := req.Options[bootstrapAllOptionName].(bool)
ctx := env.(*oldcmds.Context) cfgRoot, err := cmdenv.GetConfigRoot(env)
r, err := fsrepo.Open(ctx.ConfigRoot) if err != nil {
return err
}
r, err := fsrepo.Open(cfgRoot)
if err != nil { if err != nil {
return err return err
} }
...@@ -190,6 +206,10 @@ var bootstrapRemoveCmd = &cmds.Command{ ...@@ -190,6 +206,10 @@ var bootstrapRemoveCmd = &cmds.Command{
if all { if all {
removed, err = bootstrapRemoveAll(r, cfg) removed, err = bootstrapRemoveAll(r, cfg)
} else { } else {
if err := req.ParseBodyArgs(); err != nil {
return err
}
input, perr := config.ParseBootstrapPeers(req.Arguments) input, perr := config.ParseBootstrapPeers(req.Arguments)
if perr != nil { if perr != nil {
return err return err
...@@ -201,7 +221,7 @@ var bootstrapRemoveCmd = &cmds.Command{ ...@@ -201,7 +221,7 @@ var bootstrapRemoveCmd = &cmds.Command{
return err return err
} }
return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(removed)}) return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(removed)})
}, },
Type: BootstrapOutput{}, Type: BootstrapOutput{},
Encoders: cmds.EncoderMap{ Encoders: cmds.EncoderMap{
...@@ -218,8 +238,12 @@ var bootstrapRemoveAllCmd = &cmds.Command{ ...@@ -218,8 +238,12 @@ var bootstrapRemoveAllCmd = &cmds.Command{
}, },
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
ctx := env.(*oldcmds.Context) cfgRoot, err := cmdenv.GetConfigRoot(env)
r, err := fsrepo.Open(ctx.ConfigRoot) if err != nil {
return err
}
r, err := fsrepo.Open(cfgRoot)
if err != nil { if err != nil {
return err return err
} }
...@@ -234,7 +258,7 @@ var bootstrapRemoveAllCmd = &cmds.Command{ ...@@ -234,7 +258,7 @@ var bootstrapRemoveAllCmd = &cmds.Command{
return err return err
} }
return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(removed)}) return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(removed)})
}, },
Type: BootstrapOutput{}, Type: BootstrapOutput{},
Encoders: cmds.EncoderMap{ Encoders: cmds.EncoderMap{
...@@ -251,8 +275,12 @@ var bootstrapListCmd = &cmds.Command{ ...@@ -251,8 +275,12 @@ var bootstrapListCmd = &cmds.Command{
}, },
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
ctx := env.(*oldcmds.Context) cfgRoot, err := cmdenv.GetConfigRoot(env)
r, err := fsrepo.Open(ctx.ConfigRoot) if err != nil {
return err
}
r, err := fsrepo.Open(cfgRoot)
if err != nil { if err != nil {
return err return err
} }
...@@ -267,7 +295,7 @@ var bootstrapListCmd = &cmds.Command{ ...@@ -267,7 +295,7 @@ var bootstrapListCmd = &cmds.Command{
return err return err
} }
return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(peers)}) return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(peers)})
}, },
Type: BootstrapOutput{}, Type: BootstrapOutput{},
Encoders: cmds.EncoderMap{ Encoders: cmds.EncoderMap{
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论