Skip to content

Commit

Permalink
add bootstrap add-default and rm-all subcommands to deprecate flags
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
  • Loading branch information
whyrusleeping committed Jul 9, 2016
1 parent b034a0d commit 1f6dd26
Showing 1 changed file with 102 additions and 2 deletions.
104 changes: 102 additions & 2 deletions core/commands/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ in the bootstrap list).
},

Options: []cmds.Option{
cmds.BoolOption("default", "Add default bootstrap nodes.").Default(false),
cmds.BoolOption("default", "Add default bootstrap nodes. (Deprecated, use 'default' subcommand instead)"),
},
Subcommands: map[string]*cmds.Command{
"default": bootstrapAddDefaultCmd,
},

Run: func(req cmds.Request, res cmds.Response) {
Expand Down Expand Up @@ -124,6 +127,58 @@ in the bootstrap list).
},
}

var bootstrapAddDefaultCmd = &cmds.Command{
Helptext: cmds.HelpText{
Tagline: "Add default peers to the bootstrap list.",
ShortDescription: `Outputs a list of peers that were added (that weren't already
in the bootstrap list).`,
},
Run: func(req cmds.Request, res cmds.Response) {
defltPeers, err := config.DefaultBootstrapPeers()
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}

r, err := fsrepo.Open(req.InvocContext().ConfigRoot)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}

defer r.Close()
cfg, err := r.Config()
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}

added, err := bootstrapAdd(r, cfg, defltPeers)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}

res.SetOutput(&BootstrapOutput{config.BootstrapPeerStrings(added)})
},
Type: BootstrapOutput{},
Marshalers: cmds.MarshalerMap{
cmds.Text: func(res cmds.Response) (io.Reader, error) {
v, ok := res.Output().(*BootstrapOutput)
if !ok {
return nil, u.ErrCast()
}

buf := new(bytes.Buffer)
if err := bootstrapWritePeers(buf, "added ", v.Peers); err != nil {
return nil, err
}

return buf, nil
},
},
}

var bootstrapRemoveCmd = &cmds.Command{
Helptext: cmds.HelpText{
Tagline: "Removes peers from the bootstrap list.",
Expand All @@ -135,7 +190,10 @@ var bootstrapRemoveCmd = &cmds.Command{
cmds.StringArg("peer", false, true, peerOptionDesc).EnableStdin(),
},
Options: []cmds.Option{
cmds.BoolOption("all", "Remove all bootstrap peers.").Default(false),
cmds.BoolOption("all", "Remove all bootstrap peers. (Deprecated, use 'all' subcommand)"),
},
Subcommands: map[string]*cmds.Command{
"all": bootstrapRemoveAllCmd,
},
Run: func(req cmds.Request, res cmds.Response) {
all, _, err := req.Option("all").Bool()
Expand Down Expand Up @@ -190,6 +248,48 @@ var bootstrapRemoveCmd = &cmds.Command{
},
}

var bootstrapRemoveAllCmd = &cmds.Command{
Helptext: cmds.HelpText{
Tagline: "Removes all peers from the bootstrap list.",
ShortDescription: `Outputs the list of peers that were removed.`,
},

Run: func(req cmds.Request, res cmds.Response) {
r, err := fsrepo.Open(req.InvocContext().ConfigRoot)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}
defer r.Close()
cfg, err := r.Config()
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}

removed, err := bootstrapRemoveAll(r, cfg)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}

res.SetOutput(&BootstrapOutput{config.BootstrapPeerStrings(removed)})
},
Type: BootstrapOutput{},
Marshalers: cmds.MarshalerMap{
cmds.Text: func(res cmds.Response) (io.Reader, error) {
v, ok := res.Output().(*BootstrapOutput)
if !ok {
return nil, u.ErrCast()
}

buf := new(bytes.Buffer)
err := bootstrapWritePeers(buf, "removed ", v.Peers)
return buf, err
},
},
}

var bootstrapListCmd = &cmds.Command{
Helptext: cmds.HelpText{
Tagline: "Show peers in the bootstrap list.",
Expand Down

0 comments on commit 1f6dd26

Please sign in to comment.