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