mirror of
https://github.com/aljazceru/signal-cli-rest-api.git
synced 2025-12-20 16:14:29 +01:00
fixed bug in response parsing
* strip info and warn messages from output
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user