fixed bug in response parsing

* strip info and warn messages from output
This commit is contained in:
Bernhard B
2023-10-19 20:19:16 +02:00
parent 58ee22e280
commit fa91a58bf2

View File

@@ -23,6 +23,32 @@ func NewCliClient(signalCliMode SignalCliMode, signalCliApiConfig *utils.SignalC
} }
} }
func stripInfoAndWarnMessages(input string) (string, string, string) {
output := ""
infoMessages := ""
warnMessages := ""
lines := strings.Split(input, "\n")
for _, line := range lines {
if strings.HasPrefix(line, "INFO") {
if infoMessages != "" {
infoMessages += "\n"
}
infoMessages += line
} else if strings.HasPrefix(line, "WARN") {
if warnMessages != "" {
warnMessages += "\n"
}
warnMessages += line
} else {
if output != "" {
output += "\n"
}
output += line
}
}
return output, infoMessages, warnMessages
}
func (s *CliClient) Execute(wait bool, args []string, stdin string) (string, error) { func (s *CliClient) Execute(wait bool, args []string, stdin string) (string, error) {
containerId, err := getContainerId() containerId, err := getContainerId()
@@ -116,7 +142,20 @@ func (s *CliClient) Execute(wait bool, args []string, stdin string) (string, err
combinedOutput := stdoutBuffer.String() + stderrBuffer.String() combinedOutput := stdoutBuffer.String() + stderrBuffer.String()
log.Debug("signal-cli output (stdout): ", stdoutBuffer.String()) log.Debug("signal-cli output (stdout): ", stdoutBuffer.String())
log.Debug("signal-cli output (stderr): ", stderrBuffer.String()) log.Debug("signal-cli output (stderr): ", stderrBuffer.String())
return combinedOutput, nil strippedOutput, infoMessages, warnMessages := stripInfoAndWarnMessages(combinedOutput)
for _, line := range strings.Split(infoMessages, "\n") {
if line != "" {
log.Info(line)
}
}
for _, line := range strings.Split(warnMessages, "\n") {
if line != "" {
log.Warn(line)
}
}
return strippedOutput, nil
} else { } else {
stdout, err := cmd.StdoutPipe() stdout, err := cmd.StdoutPipe()
if err != nil { if err != nil {