arnaucube
arnaucube/go-dhtPublic Self-hosted repository
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}