diff --git a/internal/server/server.go b/internal/server/server.go index 2b6762a..71911fc 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -14,16 +14,14 @@ type Server struct { cfg *config.Config } -func NewServer(ctx context.Context, cfgLoader config.ConfigLoader) (*Server, error) { - cfg, err := cfgLoader.LoadConfig() - if err != nil { - return nil, fmt.Errorf("failed to load config: %w", err) - } - +func NewServer(cfg *config.Config) (*Server, error) { srv := &Server{ cfg: cfg, } - err = srv.setup() + err := srv.setup() + if err != nil { + return nil, fmt.Errorf("setting up server: %w", err) + } return srv, err } @@ -38,7 +36,7 @@ func (s *Server) setup() 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) go func() { diff --git a/main.go b/main.go index d419817..d0a70c9 100644 --- a/main.go +++ b/main.go @@ -1,20 +1,24 @@ package main import ( + "context" "io" "log/slog" "os" "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" ) func main() { - logBaseDir, err := os.UserHomeDir() + homeDir, err := os.UserHomeDir() if err != nil { 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 { panic("Can't create log directory") } @@ -37,4 +41,22 @@ func main() { } slog.SetDefault(slog.New(slog.NewJSONHandler(multiWriter, &logOptions))) 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) + } + }