go-dht/cmd/cmd.go
cmd/cmd.goRaw
1package cmd
2
3import (
4 "fmt"
5 "go-dht/config"
6 "go-dht/node"
7
8 log "github.com/sirupsen/logrus"
9 "github.com/urfave/cli"
10)
11
12var NodeCommands = []cli.Command{
13 {
14 Name: "start",
15 Usage: "start the node",
16 Action: cmdStart,
17 },
18}
19
20func cmdStart(c *cli.Context) error {
21 if c.GlobalBool("debug") {
22 log.SetLevel(log.DebugLevel)
23 log.SetReportCaller(true)
24 }
25
26 if err := config.MustRead(c); err != nil {
27 return err
28 }
29 fmt.Println(config.C)
30
31 var n node.Node
32 var err error
33 if config.C.ID != "" {
34 n, err = node.LoadNode(config.C.ID)
35 if err != nil {
36 return err
37 }
38 log.Info("Node loaded with ID: ", n.ID())
39 } else {
40 n, err = node.NewNode()
41 if err != nil {
42 return err
43 }
44 log.Info("New node created with ID: ", n.ID())
45 }
46 err = n.Start()
47 return err
48}