Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/proxy/plugins/jsonselect/caddyfile.go
2500 views
1
// Copyright (c) 2021 Gitpod GmbH. All rights reserved.
2
// Licensed under the GNU Affero General Public License (AGPL).
3
// See License.AGPL.txt in the project root for license information.
4
package jsonselect
5
6
import (
7
"strings"
8
9
"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"
10
)
11
12
func (e *JSONSelectEncoder) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
13
for d.Next() {
14
args := d.RemainingArgs()
15
switch len(args) {
16
case 0:
17
return d.Errf("%s (%T) requires an argument", moduleID, e)
18
default:
19
e.Selector = strings.Join(args, " ")
20
}
21
22
for n := d.Nesting(); d.NextBlock(n); {
23
subdir := d.Val()
24
var arg string
25
if !d.AllArgs(&arg) {
26
return d.ArgErr()
27
}
28
switch subdir {
29
case "message_key":
30
e.MessageKey = &arg
31
case "level_key":
32
e.LevelKey = &arg
33
case "time_key":
34
e.TimeKey = &arg
35
case "name_key":
36
e.NameKey = &arg
37
case "caller_key":
38
e.CallerKey = &arg
39
case "stacktrace_key":
40
e.StacktraceKey = &arg
41
case "line_ending":
42
e.LineEnding = &arg
43
case "time_format":
44
e.TimeFormat = arg
45
case "level_format":
46
e.LevelFormat = arg
47
default:
48
return d.Errf("unrecognized subdirective %s", subdir)
49
}
50
}
51
}
52
return nil
53
}
54
55