Path: blob/main/components/proxy/plugins/jsonselect/caddyfile.go
2500 views
// Copyright (c) 2021 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.3package jsonselect45import (6"strings"78"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"9)1011func (e *JSONSelectEncoder) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {12for d.Next() {13args := d.RemainingArgs()14switch len(args) {15case 0:16return d.Errf("%s (%T) requires an argument", moduleID, e)17default:18e.Selector = strings.Join(args, " ")19}2021for n := d.Nesting(); d.NextBlock(n); {22subdir := d.Val()23var arg string24if !d.AllArgs(&arg) {25return d.ArgErr()26}27switch subdir {28case "message_key":29e.MessageKey = &arg30case "level_key":31e.LevelKey = &arg32case "time_key":33e.TimeKey = &arg34case "name_key":35e.NameKey = &arg36case "caller_key":37e.CallerKey = &arg38case "stacktrace_key":39e.StacktraceKey = &arg40case "line_ending":41e.LineEnding = &arg42case "time_format":43e.TimeFormat = arg44case "level_format":45e.LevelFormat = arg46default:47return d.Errf("unrecognized subdirective %s", subdir)48}49}50}51return nil52}535455