Start server
This commit is contained in:
@@ -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
26
main.go
@@ -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)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user