api.go 825 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package cmd
  2. import (
  3. "github.com/mudler/edgevpn/api"
  4. "github.com/mudler/edgevpn/pkg/blockchain"
  5. "github.com/mudler/edgevpn/pkg/edgevpn"
  6. "github.com/urfave/cli"
  7. )
  8. func API() cli.Command {
  9. return cli.Command{
  10. Name: "api",
  11. Description: "api starts an http server to display network informations",
  12. Flags: append(CommonFlags,
  13. &cli.StringFlag{
  14. Name: "listen",
  15. Value: ":8080",
  16. Usage: "Listening address",
  17. },
  18. ),
  19. Action: func(c *cli.Context) error {
  20. e := edgevpn.New(cliToOpts(c)...)
  21. displayStart(e)
  22. mw, err := e.MessageWriter()
  23. if err != nil {
  24. return err
  25. }
  26. ledger := blockchain.New(mw, 1000)
  27. // Join the node to the network, using our ledger
  28. if err := e.Join(ledger); err != nil {
  29. return err
  30. }
  31. return api.API(c.String("listen"), ledger)
  32. },
  33. }
  34. }