gitea-page/cmd/gitea-page/main.go
kekskurse 5e2a1403a2
All checks were successful
continuous-integration/drone/push Build is passing
Stuff
2022-12-06 12:22:24 +01:00

75 lines
No EOL
1.7 KiB
Go

package main
import (
"flag"
"gitea-page/internal/config"
git "gitea-page/internal/git"
"gitea-page/internal/gitea"
"gitea-page/internal/promote"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"gopkg.in/yaml.v2"
"net/http"
"os"
)
func main () {
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
log.Info().Msg("Start")
config := readConfig()
setupSystem(config)
g := git.GitHandler{}
g.Config = config
p := promote.Promote{}
p.Config = config
gitea := gitea.GiteaWebhook{}
gitea.Config = config
gitea.Git = g
gitea.Promoter = p
runHTTPServer(gitea)
}
func setupSystem(config config.GiteaPagesConfig) {
_, err := os.Stat(config.RootPath)
if os.IsNotExist(err) {
log.Fatal().Str("Root Path", config.RootPath).Msg("Root Path not exists")
}
}
func runHTTPServer(gitea gitea.GiteaWebhook) {
http.HandleFunc("/gitea", gitea.WebhookEndpoint)
http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
writer.Write([]byte("Ok"))
})
err := http.ListenAndServe(":3000", nil)
if err != nil {
log.Warn().Err(err).Msg("Error while running http servre")
}
}
func readConfig() config.GiteaPagesConfig {
var configFile string
flag.StringVar(&configFile, "c", "/etc/gitea-page/config.yml", "Specify configfile, default /etc/gitea-page/config.yml")
flag.Parse()
ymlFile, err := os.ReadFile(configFile)
if err != nil {
log.Fatal().Str("configFile", configFile).Err(err).Msg("Cant read config file")
}
config := config.GiteaPagesConfig{}
yaml.Unmarshal(ymlFile, &config)
log.Debug().Str("configFile", configFile).Interface("config", config).Msg("Read config from File")
return config
}
func updateCallback(owner, name, url string) {
}