api.go 773 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. },
  17. ),
  18. Action: func(c *cli.Context) error {
  19. e := edgevpn.New(cliToOpts(c)...)
  20. mw, err := e.MessageWriter()
  21. if err != nil {
  22. return err
  23. }
  24. ledger := blockchain.New(mw, 1000)
  25. // Join the node to the network, using our ledger
  26. if err := e.Join(ledger); err != nil {
  27. return err
  28. }
  29. return api.API(c.String("listen"), ledger)
  30. },
  31. }
  32. }