util.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package cmd
  2. import (
  3. "github.com/ipfs/go-log"
  4. "github.com/mudler/edgevpn/internal"
  5. "github.com/mudler/edgevpn/pkg/edgevpn"
  6. "github.com/mudler/edgevpn/pkg/logger"
  7. "github.com/songgao/water"
  8. "github.com/urfave/cli"
  9. )
  10. func displayStart(e *edgevpn.EdgeVPN) {
  11. e.Logger().Info(Copyright)
  12. e.Logger().Infof("Version: %s commit: %s", internal.Version, internal.Commit)
  13. }
  14. func cliToOpts(c *cli.Context) []edgevpn.Option {
  15. config := c.String("config")
  16. address := c.String("address")
  17. iface := c.String("interface")
  18. logLevel := c.String("log-level")
  19. libp2plogLevel := c.String("libp2p-log-level")
  20. lvl, err := log.LevelFromString(logLevel)
  21. if err != nil {
  22. lvl = log.LevelError
  23. }
  24. llger := logger.New(lvl)
  25. libp2plvl, err := log.LevelFromString(libp2plogLevel)
  26. if err != nil {
  27. libp2plvl = log.LevelFatal
  28. }
  29. token := c.String("token")
  30. if config == "" &&
  31. token == "" {
  32. llger.Fatal("EDGEVPNCONFIG or EDGEVPNTOKEN not supplied. At least a config file is required")
  33. }
  34. return []edgevpn.Option{
  35. edgevpn.Logger(llger),
  36. edgevpn.LibP2PLogLevel(libp2plvl),
  37. edgevpn.MaxMessageSize(2 << 20), // 2MB
  38. edgevpn.WithInterfaceMTU(c.Int("mtu")),
  39. edgevpn.WithPacketMTU(1420),
  40. edgevpn.WithInterfaceAddress(address),
  41. edgevpn.WithInterfaceName(iface),
  42. edgevpn.WithMaxBlockChainSize(1000),
  43. edgevpn.WithInterfaceType(water.TUN),
  44. edgevpn.NetLinkBootstrap(true),
  45. edgevpn.FromBase64(token),
  46. edgevpn.FromYaml(config),
  47. }
  48. }