Skip to content

Commit

Permalink
Merge pull request #567 from moosq/look-for-basket-vars-in-config-too
Browse files Browse the repository at this point in the history
look for basket vars in config too
  • Loading branch information
moosq authored May 23, 2022
2 parents 1fa2da2 + 30687d5 commit 2b9d9ec
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 7 deletions.
2 changes: 1 addition & 1 deletion cmd/ntt/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/ntt/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
24 changes: 20 additions & 4 deletions ntt.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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}
}
Expand Down
2 changes: 1 addition & 1 deletion ntt_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 2b9d9ec

Please sign in to comment.