提交 27bc0ecc 作者: Overbool 提交者: Steven Allen

refactor(cmds): use new cmds lib in mount

License: MIT
Signed-off-by: 's avatarOverbool <overbool.xu@gmail.com>
上级 b1efb997
...@@ -5,12 +5,11 @@ package commands ...@@ -5,12 +5,11 @@ package commands
import ( import (
"fmt" "fmt"
"io" "io"
"strings"
cmds "github.com/ipfs/go-ipfs/commands" cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
e "github.com/ipfs/go-ipfs/core/commands/e"
nodeMount "github.com/ipfs/go-ipfs/fuse/node" nodeMount "github.com/ipfs/go-ipfs/fuse/node"
config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
config "gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config" config "gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config"
"gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
) )
...@@ -76,71 +75,50 @@ baz ...@@ -76,71 +75,50 @@ baz
cmdkit.StringOption("ipfs-path", "f", "The path where IPFS should be mounted."), cmdkit.StringOption("ipfs-path", "f", "The path where IPFS should be mounted."),
cmdkit.StringOption("ipns-path", "n", "The path where IPNS should be mounted."), cmdkit.StringOption("ipns-path", "n", "The path where IPNS should be mounted."),
}, },
Run: func(req cmds.Request, res cmds.Response) { Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
cfg, err := req.InvocContext().GetConfig() cfg, err := cmdenv.GetConfig(env)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
node, err := req.InvocContext().GetNode() nd, err := cmdenv.GetNode(env)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
// error if we aren't running node in online mode // error if we aren't running node in online mode
if node.LocalMode() { if nd.LocalMode() {
res.SetError(ErrNotOnline, cmdkit.ErrClient) return err
return
} }
fsdir, found, err := req.Option("f").String() fsdir, found := req.Options["f"].(string)
if err != nil {
res.SetError(err, cmdkit.ErrNormal)
return
}
if !found { if !found {
fsdir = cfg.Mounts.IPFS // use default value fsdir = cfg.Mounts.IPFS // use default value
} }
// get default mount points // get default mount points
nsdir, found, err := req.Option("n").String() nsdir, found := req.Options["n"].(string)
if err != nil {
res.SetError(err, cmdkit.ErrNormal)
return
}
if !found { if !found {
nsdir = cfg.Mounts.IPNS // NB: be sure to not redeclare! nsdir = cfg.Mounts.IPNS // NB: be sure to not redeclare!
} }
err = nodeMount.Mount(node, fsdir, nsdir) err = nodeMount.Mount(nd, fsdir, nsdir)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
var output config.Mounts var output config.Mounts
output.IPFS = fsdir output.IPFS = fsdir
output.IPNS = nsdir output.IPNS = nsdir
res.SetOutput(&output) return res.Emit(&output)
}, },
Type: config.Mounts{}, Type: config.Mounts{},
Marshalers: cmds.MarshalerMap{ Encoders: cmds.EncoderMap{
cmds.Text: func(res cmds.Response) (io.Reader, error) { cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, mounts *config.Mounts) error {
v, err := unwrapOutput(res.Output()) s := fmt.Sprintf("IPFS mounted at: %s\n", mounts.IPFS)
if err != nil { s += fmt.Sprintf("IPNS mounted at: %s\n", mounts.IPNS)
return nil, err fmt.Fprint(w, s)
} return nil
}),
mnts, ok := v.(*config.Mounts)
if !ok {
return nil, e.TypeErr(mnts, v)
}
s := fmt.Sprintf("IPFS mounted at: %s\n", mnts.IPFS)
s += fmt.Sprintf("IPNS mounted at: %s\n", mnts.IPNS)
return strings.NewReader(s), nil
},
}, },
} }
...@@ -132,7 +132,7 @@ var rootSubcommands = map[string]*cmds.Command{ ...@@ -132,7 +132,7 @@ var rootSubcommands = map[string]*cmds.Command{
"key": KeyCmd, "key": KeyCmd,
"log": lgc.NewCommand(LogCmd), "log": lgc.NewCommand(LogCmd),
"ls": lgc.NewCommand(LsCmd), "ls": lgc.NewCommand(LsCmd),
"mount": lgc.NewCommand(MountCmd), "mount": MountCmd,
"name": name.NameCmd, "name": name.NameCmd,
"object": ocmd.ObjectCmd, "object": ocmd.ObjectCmd,
"pin": lgc.NewCommand(PinCmd), "pin": lgc.NewCommand(PinCmd),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论