Skip to content

Commit ceec656

Browse files
committed
refactor envOrDefaultBool to use strconv.ParseBool
1 parent 6a65300 commit ceec656

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

aws/logs_monitoring_go/internal/config/environment.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package config
88
import (
99
"log/slog"
1010
"os"
11-
"strings"
11+
"strconv"
1212
)
1313

1414
var deprecatedEnvironmentVariables = []string{
@@ -43,7 +43,12 @@ func envOrDefaultBool(key string, fallback bool) bool {
4343
if !ok {
4444
return fallback
4545
}
46-
return strings.EqualFold(v, "true")
46+
b, err := strconv.ParseBool(v)
47+
if err != nil {
48+
slog.Warn("invalid boolean env var, using default", slog.String("key", key), slog.String("value", v), slog.Bool("default", fallback))
49+
return fallback
50+
}
51+
return b
4752
}
4853

4954
func logDroppedEnvVars() {

aws/logs_monitoring_go/internal/config/environment_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ func TestEnvOrDefaultBool(t *testing.T) {
4646
"true_uppercase": {value: "TRUE", set: true, fallback: false, want: true},
4747
"true_mixed_case": {value: "True", set: true, fallback: false, want: true},
4848
"false_value": {value: "false", set: true, fallback: true, want: false},
49-
"invalid_value": {value: "yes", set: true, fallback: true, want: false},
50-
"empty_value": {value: "", set: true, fallback: true, want: false},
49+
"one_is_true": {value: "1", set: true, fallback: false, want: true},
50+
"zero_is_false": {value: "0", set: true, fallback: true, want: false},
51+
"invalid_uses_fallback": {value: "yes", set: true, fallback: true, want: true},
52+
"empty_uses_fallback": {value: "", set: true, fallback: true, want: true},
5153
}
5254

5355
for name, tc := range tests {

0 commit comments

Comments
 (0)