server/main.go

63 lines
1.4 KiB
Go

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,
))
}