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 err := config.MustRead(c); err != nil {
22		return err
23	}
24	fmt.Println(config.C)
25
26	var n node.Node
27	var err error
28	if config.C.ID != "" {
29		n, err = node.LoadNode(config.C.ID)
30		if err != nil {
31			return err
32		}
33		log.Info("Node loaded with ID: ", n.ID())
34	} else {
35		n, err = node.NewNode()
36		if err != nil {
37			return err
38		}
39		log.Info("New node created with ID: ", n.ID())
40	}
41	err = n.Start()
42	return err
43}