Added config, added logging

This commit is contained in:
Alexander
2026-05-03 15:49:35 +02:00
parent 46c2f6541f
commit 58aa4ef23b
7 changed files with 229 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
package main
import (
"flag"
"os"
"github.com/gin-gonic/gin"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"gopkg.in/yaml.v2"
// My modules
"homelab.lan/music-agregator/internal/config"
)
func main() {
log.Logger = zerolog.New(zerolog.ConsoleWriter{Out: os.Stderr}).
With().Timestamp().Logger()
router := gin.Default()
configPath := flag.String("config", "", "Path to the config file")
flag.Parse()
cfg, err := parseConfig(configPath)
if err != nil {
log.Fatal().Err(err).Msg("Failed to load config")
}
log.Info().Interface("config", cfg).Msg("Loaded config")
router.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
router.Run()
}
func parseConfig(path *string) (config.Config, error) {
f, err := os.Open(*path)
if err != nil {
log.Error().Str("path", *path).Msg("Unable to opent config by path")
return config.Config{}, err
}
defer f.Close()
var cfg config.Config
decoder := yaml.NewDecoder(f)
err = decoder.Decode(&cfg)
if err != nil {
// processError(err)
}
return cfg, nil
}