mirror of
https://github.com/ipfs/kubo.git
synced 2025-05-21 00:47:22 +08:00
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package commands
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"strings"
|
|
|
|
cmds "github.com/jbenet/go-ipfs/commands"
|
|
config "github.com/jbenet/go-ipfs/repo/config"
|
|
)
|
|
|
|
type VersionOutput struct {
|
|
Version string
|
|
}
|
|
|
|
var VersionCmd = &cmds.Command{
|
|
Helptext: cmds.HelpText{
|
|
Tagline: "Shows ipfs version information",
|
|
ShortDescription: "Returns the current version of ipfs and exits.",
|
|
},
|
|
|
|
Options: []cmds.Option{
|
|
cmds.BoolOption("number", "n", "Only show the version number"),
|
|
},
|
|
Run: func(req cmds.Request) (interface{}, error) {
|
|
return &VersionOutput{
|
|
Version: config.CurrentVersionNumber,
|
|
}, nil
|
|
},
|
|
Marshalers: cmds.MarshalerMap{
|
|
cmds.Text: func(res cmds.Response) (io.Reader, error) {
|
|
v := res.Output().(*VersionOutput)
|
|
|
|
number, found, err := res.Request().Option("number").Bool()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if found && number {
|
|
return strings.NewReader(fmt.Sprintln(v.Version)), nil
|
|
}
|
|
return strings.NewReader(fmt.Sprintf("ipfs version %s\n", v.Version)), nil
|
|
},
|
|
},
|
|
Type: VersionOutput{},
|
|
}
|