main.go 805 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "gitea.ligthert.net/golang/sfcs/client"
  6. "gitea.ligthert.net/golang/sfcs/flags"
  7. "gitea.ligthert.net/golang/sfcs/server"
  8. "gitea.ligthert.net/golang/sfcs/vars"
  9. )
  10. func main() {
  11. // Create a new instance of the Controller struct
  12. vars := vars.Vars{}
  13. // Create a new instance of the Flags struct
  14. flags := flags.Flags{Vars: &vars}
  15. err := flags.ParseFlags()
  16. if err != nil {
  17. fmt.Println(err)
  18. os.Exit(1)
  19. }
  20. // Switch on the role
  21. switch vars.Role {
  22. case "scheduler":
  23. server := server.Server{ListenAddress: vars.Address, ListenPort: vars.Port, Agents: make(map[string]*server.Agent)}
  24. vars.Operator = &server
  25. case "agent":
  26. client := client.Client{ServerAddress: vars.Address, ServerPort: vars.Port}
  27. vars.Operator = &client
  28. }
  29. vars.Operator.Start()
  30. }