From b9655f67573b555304bf67541dadf12249df1832 Mon Sep 17 00:00:00 2001 From: Uwe Truetsch Date: Fri, 20 May 2022 19:30:29 +0300 Subject: [PATCH 1/2] look for basket vars in config too --- cmd/ntt/list.go | 2 +- cmd/ntt/run.go | 2 +- ntt.go | 24 ++++++++++++++++++++---- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/cmd/ntt/list.go b/cmd/ntt/list.go index 60b89f5b..4cad0b95 100644 --- a/cmd/ntt/list.go +++ b/cmd/ntt/list.go @@ -147,7 +147,7 @@ func init() { func list(cmd *cobra.Command, args []string) error { basket, err := ntt2.NewBasketWithFlags("list", cmd.Flags()) - basket.LoadFromEnv("NTT_LIST_BASKETS") + basket.LoadFromEnvOrConfig(Project, "NTT_LIST_BASKETS") if err != nil { return err } diff --git a/cmd/ntt/run.go b/cmd/ntt/run.go index f780fc5d..f0e18bd1 100644 --- a/cmd/ntt/run.go +++ b/cmd/ntt/run.go @@ -129,7 +129,7 @@ func run(cmd *cobra.Command, args []string) error { var err error Basket, err = ntt.NewBasketWithFlags("list", cmd.Flags()) - Basket.LoadFromEnv("NTT_LIST_BASKETS") + Basket.LoadFromEnvOrConfig(Project, "NTT_LIST_BASKETS") if err != nil { return err } diff --git a/ntt.go b/ntt.go index cadd8e08..97084cd8 100644 --- a/ntt.go +++ b/ntt.go @@ -163,9 +163,25 @@ func NewBasketWithFlags(name string, fs *pflag.FlagSet) (Basket, error) { return b, nil } -// Load baskets from given environment variable. -func (b *Basket) LoadFromEnv(key string) error { - s := env.Getenv(key) +// Load baskets from given environment variable from environment +// or from configuration. +func (b *Basket) LoadFromEnvOrConfig(c *project.Config, key string) error { + get := func(name string) string { + if s, ok := env.LookupEnv(name); ok { + return s + } + + if c != nil { + if c.Variables[name] != "" { + return c.Variables[name] + } + if strings.HasPrefix(name, "NTT") { + return c.Variables[strings.Replace(name, "NTT", "K3", 1)] + } + } + return "" + } + s := get(key) if s == "" { return nil } @@ -175,7 +191,7 @@ func (b *Basket) LoadFromEnv(key string) error { if name == "" { continue } - args := strings.Fields(env.Getenv(fmt.Sprintf("%s_%s", key, name))) + args := strings.Fields(get(fmt.Sprintf("%s_%s", key, name))) if len(args) == 0 { args = []string{"-R", "@" + name} } From 30687d5aecb4afeb7a3378eee7a8a4c7e5c72f9b Mon Sep 17 00:00:00 2001 From: Uwe Truetsch Date: Fri, 20 May 2022 20:53:19 +0300 Subject: [PATCH 2/2] adapted test to new LoadFromEnvOrConfig function --- ntt_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ntt_test.go b/ntt_test.go index 998bab8e..17021ce6 100644 --- a/ntt_test.go +++ b/ntt_test.go @@ -124,7 +124,7 @@ func TestLoadFromEnv(t *testing.T) { t.Fatal(err) } - b.LoadFromEnv("TEST_BASKET") + b.LoadFromEnvOrConfig(nil, "TEST_BASKET") test := []struct { name string tags []string