From 7f1f186aa02cbad418c0585e791bb07e3b3bcfc2 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Feb 2024 18:00:26 +0100 Subject: [PATCH] nternal/config/cli.go: move overrideCliFlags() to cmd/thalos/server.go as its pretty specific code. --- cmd/thalos/server.go | 14 +++++++++++++- internal/config/builder.go | 7 ------- internal/config/builder_test.go | 8 ++------ internal/config/cli.go | 10 ---------- 4 files changed, 15 insertions(+), 24 deletions(-) diff --git a/cmd/thalos/server.go b/cmd/thalos/server.go index 1a5c95b..5103b5a 100644 --- a/cmd/thalos/server.go +++ b/cmd/thalos/server.go @@ -7,6 +7,7 @@ import ( "io" "os" "os/signal" + "path" "syscall" "time" @@ -204,10 +205,21 @@ func GetConfig(flags *pflag.FlagSet) (*config.Config, error) { return nil, err } - return config.NewBuilder(). + cfg, err := config.NewBuilder(). SetConfigFile(filename). SetFlags(flags). Build() + if err != nil { + return nil, err + } + + logFile, _ := flags.GetString("log") + if len(logFile) > 0 { + cfg.Log.Directory = path.Dir(logFile) + cfg.Log.Filename = path.Base(logFile) + } + + return cfg, nil } func serverCmd(cmd *cobra.Command, args []string) { diff --git a/internal/config/builder.go b/internal/config/builder.go index 6a55976..5257e3d 100644 --- a/internal/config/builder.go +++ b/internal/config/builder.go @@ -116,12 +116,5 @@ func (b *Builder) Build() (*Config, error) { return nil, err } - // Call custom handler. - if b.flags != nil { - if err := overrideCliFlags(&conf, b.flags); err != nil { - return nil, err - } - } - return &conf, nil } diff --git a/internal/config/builder_test.go b/internal/config/builder_test.go index 3f52548..9bc1589 100644 --- a/internal/config/builder_test.go +++ b/internal/config/builder_test.go @@ -110,8 +110,8 @@ name: "ship-reader-1" api: "http://127.0.0.1:8080" message_codec: "mojibake" log: - filename: some_file.log - directory: /path/to/whatever + filename: mylog.log + directory: /var/log maxtime: 30m maxfilesize: 200b ship: @@ -135,7 +135,6 @@ redis: require.NoError(t, flags.Set("url", "https://api.example.com")) require.NoError(t, flags.Set("codec", "msgpack")) - require.NoError(t, flags.Set("log", "/var/log/mylog.log")) require.NoError(t, flags.Set("redis-user", "userfromcli")) builder.SetFlags(flags) @@ -164,7 +163,6 @@ func TestBuilder_Flags(t *testing.T) { require.NoError(t, flags.Set("redis-prefix", "custom-prefix")) require.NoError(t, flags.Set("telegram-id", "72983126312982618")) require.NoError(t, flags.Set("telegram-channel", "-293492332")) - require.NoError(t, flags.Set("log", "/path/to/logs/mylog")) require.NoError(t, flags.Set("log-max-filesize", "25mb")) require.NoError(t, flags.Set("log-max-time", "10m")) require.NoError(t, flags.Set("ship-url", "ws://myship.com:7823")) @@ -183,8 +181,6 @@ func TestBuilder_Flags(t *testing.T) { Api: "https://myapi", MessageCodec: "binary", Log: log.Config{ - Filename: "mylog", - Directory: "/path/to/logs", MaxFileSize: 25 * 1000 * 1000, // 25 mb MaxTime: time.Minute * 10, }, diff --git a/internal/config/cli.go b/internal/config/cli.go index c5b3c95..d831b7a 100644 --- a/internal/config/cli.go +++ b/internal/config/cli.go @@ -1,7 +1,6 @@ package config import ( - "path" "time" shipclient "github.com/eosswedenorg-go/antelope-ship-client" @@ -45,12 +44,3 @@ func GetFlags() *pflag.FlagSet { return &flags } - -func overrideCliFlags(cfg *Config, flags *pflag.FlagSet) error { - logFile, _ := flags.GetString("log") - if len(logFile) > 0 { - cfg.Log.Directory = path.Dir(logFile) - cfg.Log.Filename = path.Base(logFile) - } - return nil -}