package main import ( "net/http" "os" "git.ohea.xyz/cursorius/server/config" "git.ohea.xyz/cursorius/server/database" "git.ohea.xyz/cursorius/server/listen" "git.ohea.xyz/cursorius/server/poll" "git.ohea.xyz/cursorius/server/runnermanager" "github.com/op/go-logging" ) var log = logging.MustGetLogger("cursorius-server") func main() { var format = logging.MustStringFormatter( `%{color}%{time:15:04:05.000} %{level:.4s}:%{color:reset} %{message}`, ) backend := logging.NewLogBackend(os.Stderr, "", 0) backendFormatter := logging.NewBackendFormatter(backend, format) backendLeveled := logging.AddModuleLevel(backendFormatter) backendLeveled.SetLevel(logging.DEBUG, "") logging.SetBackend(backendLeveled) log.Info("Starting cursorius-server v0.1.0") configData, err := config.GetConfig() if err != nil { log.Errorf("Could not get configuration: %v", err) return } err = database.LaunchDB(configData.Config.DBConfig) if err != nil { log.Errorf("Could not launch db: %v", err) return } getRunnerCh, registerCh, err := runnermanager.StartRunnerManager(configData.Config.Runners) if err != nil { log.Errorf("Could not start runner: %v", err) return } poll.StartPolling(configData.Config) mux := http.NewServeMux() listen.Listen( mux, configData.Config.Address, configData.Config.Port, configData.Config, registerCh, getRunnerCh, ) }