Skip to content

Commit 8020163

Browse files
author
Pavel Okhlopkov
committed
refactoring executor
Signed-off-by: Pavel Okhlopkov <[email protected]>
1 parent b18dee2 commit 8020163

File tree

1 file changed

+19
-32
lines changed

1 file changed

+19
-32
lines changed

pkg/executor/executor.go

+19-32
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,10 @@ func RunAndLogLines(cmd *exec.Cmd, logLabels map[string]string, logger *unilogge
4242

4343
logEntry.Debugf("Executing command '%s' in '%s' dir", strings.Join(cmd.Args, " "), cmd.Dir)
4444

45-
if app.LogProxyHookJSON {
46-
plo := &proxyJSONLogger{make([]byte, 0), stdoutLogEntry}
47-
ple := &proxyJSONLogger{make([]byte, 0), stderrLogEntry}
48-
cmd.Stdout = plo
49-
cmd.Stderr = io.MultiWriter(ple, stdErr)
50-
} else {
51-
plo := &proxyLogger{make([]byte, 0), stdoutLogEntry}
52-
ple := &proxyLogger{make([]byte, 0), stderrLogEntry}
53-
cmd.Stdout = plo
54-
cmd.Stderr = io.MultiWriter(ple, stdErr)
55-
}
45+
plo := &proxyLogger{make([]byte, 0), app.LogProxyHookJSON, stdoutLogEntry}
46+
ple := &proxyLogger{make([]byte, 0), app.LogProxyHookJSON, stderrLogEntry}
47+
cmd.Stdout = plo
48+
cmd.Stderr = io.MultiWriter(ple, stdErr)
5649

5750
err := cmd.Run()
5851
if err != nil {
@@ -79,17 +72,25 @@ func RunAndLogLines(cmd *exec.Cmd, logLabels map[string]string, logger *unilogge
7972
return usage, err
8073
}
8174

82-
type proxyJSONLogger struct {
75+
type proxyLogger struct {
8376
buf []byte
8477

78+
logProxyHookJSON bool
79+
8580
logger *unilogger.Logger
8681
}
8782

88-
func (pj *proxyJSONLogger) Write(p []byte) (n int, err error) {
89-
pj.buf = append(pj.buf, p...)
83+
func (pl *proxyLogger) Write(p []byte) (n int, err error) {
84+
pl.buf = append(pl.buf, p...)
85+
86+
if !pl.logProxyHookJSON {
87+
pl.logger.Log(context.Background(), unilogger.LevelInfo.Level(), strings.TrimSpace(string(pl.buf)))
88+
89+
return len(p), nil
90+
}
9091

9192
var line interface{}
92-
err = json.Unmarshal(pj.buf, &line)
93+
err = json.Unmarshal(pl.buf, &line)
9394
if err != nil {
9495
if err.Error() == "unexpected end of JSON input" {
9596
return len(p), nil
@@ -100,35 +101,21 @@ func (pj *proxyJSONLogger) Write(p []byte) (n int, err error) {
100101

101102
logMap, ok := line.(map[string]interface{})
102103
if !ok {
103-
pj.logger.Debugf("json log line not map[string]interface{}: %v", line)
104+
pl.logger.Debugf("json log line not map[string]interface{}: %v", line)
104105
// fall back to using the logger
105-
pj.logger.Info(string(p))
106+
pl.logger.Info(string(p))
106107

107108
return len(p), err
108109
}
109110

110-
logEntry := pj.logger.With(app.ProxyJsonLogKey, true)
111+
logEntry := pl.logger.With(app.ProxyJsonLogKey, true)
111112

112113
// logEntry.Log(log.FatalLevel, string(logLine))
113114
logEntry.Log(context.Background(), unilogger.LevelFatal.Level(), "hook result", slog.Any("hook", logMap))
114115

115116
return len(p), nil
116117
}
117118

118-
type proxyLogger struct {
119-
buf []byte
120-
121-
logger *unilogger.Logger
122-
}
123-
124-
func (pl *proxyLogger) Write(p []byte) (n int, err error) {
125-
pl.buf = append(pl.buf, p...)
126-
127-
pl.logger.Log(context.Background(), unilogger.LevelInfo.Level(), strings.TrimSpace(string(pl.buf)))
128-
129-
return len(p), nil
130-
}
131-
132119
func Output(cmd *exec.Cmd) (output []byte, err error) {
133120
// TODO context: hook name, hook phase, hook binding
134121
// TODO observability

0 commit comments

Comments
 (0)