Skip to content

Commit c5dae55

Browse files
committed
fix reading api-port from env var
1 parent 294ce62 commit c5dae55

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

config/decoders/decoder_flag.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,13 @@ func (f *FlagDecoder) setValue(ctx *context) error {
8282
}
8383
ctx.element.SetInt(i)
8484
return nil
85+
case reflect.Int:
86+
i, err := strconv.Atoi(ctx.value[0])
87+
if err != nil {
88+
return fmt.Errorf("parse int64 failed: %v", err)
89+
}
90+
ctx.element.SetInt(int64(i))
91+
return nil
8592
case reflect.Bool:
8693
b := false
8794
if ctx.value[0] == "" {

config/static/static_config_test.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@ package static_test
22

33
import (
44
"encoding/json"
5-
"github.com/sirupsen/logrus/hooks/test"
6-
"github.com/stretchr/testify/require"
75
"mokapi/config/decoders"
86
"mokapi/config/dynamic/provider/file/filetest"
97
"mokapi/config/static"
108
"os"
119
"testing"
10+
11+
"github.com/sirupsen/logrus/hooks/test"
12+
"github.com/stretchr/testify/require"
1213
)
1314

1415
func TestStaticConfig(t *testing.T) {
@@ -179,6 +180,21 @@ func TestStaticConfig(t *testing.T) {
179180
require.Equal(t, "3m", cfg.Providers.Git.Repositories[0].PullInterval)
180181
},
181182
},
183+
{
184+
name: "api port as env var",
185+
test: func(t *testing.T) {
186+
os.Args = append(os.Args, "mokapi.exe")
187+
err := os.Setenv("MOKAPI_API_PORT", "1234")
188+
require.NoError(t, err)
189+
defer os.Unsetenv("MOKAPI_API_PORT")
190+
191+
cfg := static.Config{}
192+
err = decoders.Load([]decoders.ConfigDecoder{&decoders.FlagDecoder{}}, &cfg)
193+
require.NoError(t, err)
194+
195+
require.Equal(t, 1234, cfg.Api.Port)
196+
},
197+
},
182198
{
183199
name: "file provider include",
184200
test: func(t *testing.T) {

0 commit comments

Comments
 (0)