63 lines
1.4 KiB
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,
|
|
))
|
|
}
|