diff --git a/main.go b/main.go index bb4d697a..382393ef 100644 --- a/main.go +++ b/main.go @@ -27,8 +27,8 @@ type args struct { Addr string `arg:"env:DOZZLE_ADDR" default:":8080"` Base string `arg:"env:DOZZLE_BASE" default:"/"` Level string `arg:"env:DOZZLE_LEVEL" default:"info"` - TailSize int `arg:"env:DOZZLE_TAILSIZE" default:300` - // filters map[string]string + TailSize int `arg:"env:DOZZLE_TAILSIZE" default:"300"` + Filter string `arg:"env:DOZZLE_FILTER"` Key string `arg:"env:DOZZLE_KEY"` Username string `arg:"env:DOZZLE_USERNAME"` Password string `arg:"env:DOZZLE_PASSWORD"` @@ -41,22 +41,6 @@ func (args) Version() string { //go:embed static var content embed.FS -func init() { - // Until https://github.com/spf13/viper/issues/911 is fixed. We have to use this hacky way. - // filters = viper.GetStringMapString("filter") - if value, ok := os.LookupEnv("DOZZLE_FILTER"); ok { - log.Infof("Parsing %s", value) - urlValues, err := url.ParseQuery(strings.ReplaceAll(value, ",", "&")) - if err != nil { - log.Fatal(err) - } - filters = map[string]string{} - for k, v := range urlValues { - filters[k] = v[0] - } - } -} - func main() { var args args arg.MustParse(&args) @@ -68,6 +52,18 @@ func main() { DisableLevelTruncation: true, }) + if args.Filter != "" { + log.Infof("Parsing %s", args.Filter) + urlValues, err := url.ParseQuery(strings.ReplaceAll(args.Filter, ",", "&")) + if err != nil { + log.Fatal(err) + } + filters = map[string]string{} + for k, v := range urlValues { + filters[k] = v[0] + } + } + log.Infof("Dozzle version %s", version) dockerClient := docker.NewClientWithFilters(filters) _, err := dockerClient.ListContainers()