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 } db, err := database.LaunchDB(configData.Config.DBConfig) if err != nil { log.Errorf("Could not launch db: %v", err) return } runnerManagerChans, err := runnermanager.StartRunnerManager(configData.Config.Runners, db) if err != nil { log.Errorf("Could not start runner: %v", err) return } pollChan := poll.StartPolling(configData.Config.PipelineConf, db) mux := http.NewServeMux() log.Fatal(listen.Listen( mux, configData.Config.Address, configData.Config.Port, configData.Config.PipelineConf, db, runnerManagerChans, pollChan, )) }