Start server

This commit is contained in:
henk
2026-05-15 14:39:47 +02:00
parent 107c23a29d
commit e38d34bf5f
2 changed files with 30 additions and 10 deletions

View File

@@ -14,16 +14,14 @@ type Server struct {
cfg *config.Config cfg *config.Config
} }
func NewServer(ctx context.Context, cfgLoader config.ConfigLoader) (*Server, error) { func NewServer(cfg *config.Config) (*Server, error) {
cfg, err := cfgLoader.LoadConfig()
if err != nil {
return nil, fmt.Errorf("failed to load config: %w", err)
}
srv := &Server{ srv := &Server{
cfg: cfg, cfg: cfg,
} }
err = srv.setup() err := srv.setup()
if err != nil {
return nil, fmt.Errorf("setting up server: %w", err)
}
return srv, err return srv, err
} }
@@ -38,7 +36,7 @@ func (s *Server) setup() error {
} }
func (s *Server) Run(ctx context.Context) error { func (s *Server) Run(ctx context.Context) error {
slog.Info("Starting AgentGopher gateway", "address", s.cfg.Server.BindAddress) slog.Info("Starting Mars Terraform Registry", "address", s.cfg.Server.BindAddress)
errCh := make(chan error, 1) errCh := make(chan error, 1)
go func() { go func() {

26
main.go
View File

@@ -1,20 +1,24 @@
package main package main
import ( import (
"context"
"io" "io"
"log/slog" "log/slog"
"os" "os"
"path/filepath" "path/filepath"
"git.systemact.nl/henk/mars-terraform-registry/internal/config"
"git.systemact.nl/henk/mars-terraform-registry/internal/server"
"gopkg.in/natefinch/lumberjack.v2" "gopkg.in/natefinch/lumberjack.v2"
) )
func main() { func main() {
logBaseDir, err := os.UserHomeDir() homeDir, err := os.UserHomeDir()
if err != nil { if err != nil {
panic("Can't determine home directory") panic("Can't determine home directory")
} }
logFilePath := filepath.Join(logBaseDir, ".local", "share", "mars_terraform_registry", "logs") appDir := filepath.Join(homeDir, ".local", "share", "mars_terraform_registry")
logFilePath := filepath.Join(appDir, "logs")
if err := os.MkdirAll(logFilePath, 0755); err != nil { if err := os.MkdirAll(logFilePath, 0755); err != nil {
panic("Can't create log directory") panic("Can't create log directory")
} }
@@ -37,4 +41,22 @@ func main() {
} }
slog.SetDefault(slog.New(slog.NewJSONHandler(multiWriter, &logOptions))) slog.SetDefault(slog.New(slog.NewJSONHandler(multiWriter, &logOptions)))
slog.Info("Logging test") slog.Info("Logging test")
yamlConfigLoader := &config.YamlConfigLoader{FilePath: filepath.Join(appDir, "config", "config.yaml")}
cfg, err := yamlConfigLoader.LoadConfig()
if err != nil {
slog.Error("Failed to load config", slog.Any("error", err))
panic("Failed to load config")
}
slog.Info("Config loaded", slog.Any("config", cfg))
server, err := server.NewServer(cfg)
if err != nil {
slog.Error("Failed to create server", "error", err)
os.Exit(1)
}
if err := server.Run(context.Background()); err != nil {
slog.Error("Server error", "error", err)
os.Exit(1)
}
} }