mirror of
https://github.com/amir20/dozzle.git
synced 2025-12-21 21:33:18 +01:00
feat: warns against unexpected env variables (#2345)
This commit is contained in:
19
main.go
19
main.go
@@ -7,6 +7,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
@@ -232,6 +233,24 @@ func createLocalClient(args args, localClientFactory func(map[string][]string) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
func parseArgs() args {
|
func parseArgs() args {
|
||||||
|
argsType := reflect.TypeOf(args{})
|
||||||
|
expectedEnvs := make(map[string]bool)
|
||||||
|
for i := 0; i < argsType.NumField(); i++ {
|
||||||
|
field := argsType.Field(i)
|
||||||
|
for _, tag := range strings.Split(field.Tag.Get("arg"), ",") {
|
||||||
|
if strings.HasPrefix(tag, "env:") {
|
||||||
|
expectedEnvs[strings.TrimPrefix(tag, "env:")] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, env := range os.Environ() {
|
||||||
|
actual := strings.Split(env, "=")[0]
|
||||||
|
if strings.HasPrefix(actual, "DOZZLE_") && !expectedEnvs[actual] {
|
||||||
|
log.Warnf("Unexpected environment variable %s", actual)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var args args
|
var args args
|
||||||
parser := arg.MustParse(&args)
|
parser := arg.MustParse(&args)
|
||||||
args.Filter = make(map[string][]string)
|
args.Filter = make(map[string][]string)
|
||||||
|
|||||||
Reference in New Issue
Block a user