1
0
mirror of https://github.com/amir20/dozzle.git synced 2026-01-03 19:45:01 +01:00

feat: allows filters to be set at user level (#3456)

This commit is contained in:
Amir Raminfar
2024-12-14 10:25:15 -08:00
committed by GitHub
parent 5a5a0d329b
commit d312871d89
12 changed files with 170 additions and 49 deletions

View File

@@ -3,6 +3,7 @@ package docker
import (
"fmt"
"math"
"strings"
"time"
"github.com/amir20/dozzle/internal/utils"
@@ -44,6 +45,29 @@ type ContainerEvent struct {
type ContainerFilter map[string][]string
func ParseContainerFilter(commaValues string) (ContainerFilter, error) {
filter := make(ContainerFilter)
if commaValues == "" {
return filter, nil
}
for _, val := range strings.Split(commaValues, ",") {
pos := strings.Index(val, "=")
if pos == -1 {
return nil, fmt.Errorf("invalid filter: %s", filter)
}
key := val[:pos]
val := val[pos+1:]
filter[key] = append(filter[key], val)
}
return filter, nil
}
func (f ContainerFilter) Exists() bool {
return len(f) > 0
}
func (f ContainerFilter) asArgs() filters.Args {
filterArgs := filters.NewArgs()
for key, values := range f {