From d6e7791cb44cb5d92b96e34000e7b24a1c6e118b Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Thu, 7 Nov 2024 15:53:36 +0100 Subject: [PATCH] chore: add default configuration file verification before generating a new one when passing a wrong config file --- internal/config.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/internal/config.go b/internal/config.go index 9ba86e5..9d63d56 100644 --- a/internal/config.go +++ b/internal/config.go @@ -39,7 +39,7 @@ func (GatewayServer) Config(configFile string) (*GatewayServer, error) { c := &GatewayConfig{} err = yaml.Unmarshal(buf, c) if err != nil { - return nil, fmt.Errorf("error parsing yaml %q: %w", configFile, err) + return nil, fmt.Errorf("parsing the configuration file %q: %w", configFile, err) } return &GatewayServer{ ctx: nil, @@ -48,6 +48,27 @@ func (GatewayServer) Config(configFile string) (*GatewayServer, error) { }, nil } logger.Error("Configuration file not found: %v", configFile) + // Check a default file + if util.FileExists(ConfigFile) { + buf, err := os.ReadFile(ConfigFile) + if err != nil { + return nil, err + + } + logger.Info("Using configuration file: %s", ConfigFile) + util.SetEnv("GOMA_CONFIG_FILE", configFile) + c := &GatewayConfig{} + err = yaml.Unmarshal(buf, c) + if err != nil { + return nil, fmt.Errorf("parsing the configuration file %q: %w", ConfigFile, err) + } + return &GatewayServer{ + ctx: nil, + gateway: c.GatewayConfig, + middlewares: c.Middlewares, + }, nil + + } logger.Info("Generating new configuration file...") initConfig(ConfigFile) logger.Info("Server configuration file is available at %s", ConfigFile)