浏览代码

:wrench: Allow to start API also when running VPN

Ettore Di Giacinto 3 年之前
父节点
当前提交
22746f95be
共有 1 个文件被更改,包括 19 次插入0 次删除
  1. 19 0
      cmd/main.go

+ 19 - 0
cmd/main.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"fmt"
 	"os"
 	"os"
 
 
+	"github.com/mudler/edgevpn/api"
 	"github.com/mudler/edgevpn/pkg/edgevpn"
 	"github.com/mudler/edgevpn/pkg/edgevpn"
 	"github.com/urfave/cli"
 	"github.com/urfave/cli"
 	"gopkg.in/yaml.v2"
 	"gopkg.in/yaml.v2"
@@ -55,6 +56,15 @@ func MainFlags() []cli.Flag {
 			Name:  "b",
 			Name:  "b",
 			Usage: "Encodes the new config in base64, so it can be used as a token",
 			Usage: "Encodes the new config in base64, so it can be used as a token",
 		},
 		},
+		&cli.BoolFlag{
+			Name:  "api",
+			Usage: "Starts also the API daemon locally for inspecting the network status",
+		},
+		&cli.StringFlag{
+			Name:  "api-listen",
+			Value: ":8080",
+			Usage: "API listening port",
+		},
 		&cli.StringFlag{
 		&cli.StringFlag{
 			Name:   "address",
 			Name:   "address",
 			Usage:  "VPN virtual address",
 			Usage:  "VPN virtual address",
@@ -98,6 +108,15 @@ func Main() func(c *cli.Context) error {
 
 
 		displayStart(e)
 		displayStart(e)
 
 
+		ledger, err := e.Ledger()
+		if err != nil {
+			return err
+		}
+
+		if c.Bool("api") {
+			go api.API(c.String("api-listen"), ledger)
+		}
+
 		if err := e.Start(); err != nil {
 		if err := e.Start(); err != nil {
 			e.Logger().Fatal(err.Error())
 			e.Logger().Fatal(err.Error())
 		}
 		}