api.go 839 B

123456789101112131415161718192021222324252627282930313233343536
  1. package cmd
  2. import (
  3. "github.com/mudler/edgevpn/api"
  4. "github.com/mudler/edgevpn/pkg/edgevpn"
  5. "github.com/urfave/cli"
  6. )
  7. func API() cli.Command {
  8. return cli.Command{
  9. Name: "api",
  10. Usage: "Starts an http server to display network informations",
  11. Description: `Start listening locally, providing an API for the network.
  12. A simple UI interface is available to display network data.`,
  13. UsageText: "edgevpn api",
  14. Flags: append(CommonFlags,
  15. &cli.StringFlag{
  16. Name: "listen",
  17. Value: ":8080",
  18. Usage: "Listening address",
  19. },
  20. ),
  21. Action: func(c *cli.Context) error {
  22. e := edgevpn.New(cliToOpts(c)...)
  23. displayStart(e)
  24. // Join the node to the network, using our ledger
  25. if err := e.Join(); err != nil {
  26. return err
  27. }
  28. ledger, _ := e.Ledger()
  29. return api.API(c.String("listen"), ledger)
  30. },
  31. }
  32. }