Skip to content

Commit 4e48f3e

Browse files
authored
Fix: Only parse json from stdout (#59)
* don't combine stdout and stderr * log warnings from stderr
1 parent f6a7dc9 commit 4e48f3e

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

kbchat/team.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package kbchat
22

33
import (
4+
"bytes"
45
"encoding/json"
56
"fmt"
7+
"log"
68
"strings"
79

810
"github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1"
@@ -27,13 +29,18 @@ func (a *API) ListMembersOfTeam(teamName string) (res keybase1.TeamMembersDetail
2729
apiInput := fmt.Sprintf(`{"method": "list-team-memberships", "params": {"options": {"team": "%s"}}}`, teamName)
2830
cmd := a.runOpts.Command("team", "api")
2931
cmd.Stdin = strings.NewReader(apiInput)
30-
bytes, err := cmd.CombinedOutput()
32+
var stderr bytes.Buffer
33+
cmd.Stderr = &stderr
34+
output, err := cmd.Output()
3135
if err != nil {
3236
return res, APIError{err}
3337
}
38+
if stderr.Len() != 0 {
39+
log.Printf("ListMembersOfTeam error: %s", stderr.String())
40+
}
3441

3542
members := ListTeamMembers{}
36-
err = json.Unmarshal(bytes, &members)
43+
err = json.Unmarshal(output, &members)
3744
if err != nil {
3845
return res, UnmarshalError{err}
3946
}
@@ -47,13 +54,18 @@ func (a *API) ListUserMemberships(username string) ([]keybase1.AnnotatedMemberIn
4754
apiInput := fmt.Sprintf(`{"method": "list-user-memberships", "params": {"options": {"username": "%s"}}}`, username)
4855
cmd := a.runOpts.Command("team", "api")
4956
cmd.Stdin = strings.NewReader(apiInput)
50-
bytes, err := cmd.CombinedOutput()
57+
var stderr bytes.Buffer
58+
cmd.Stderr = &stderr
59+
output, err := cmd.Output()
5160
if err != nil {
5261
return nil, APIError{err}
5362
}
63+
if stderr.Len() != 0 {
64+
log.Printf("ListUserMemberships error: %s", stderr.String())
65+
}
5466

5567
members := ListUserMemberships{}
56-
err = json.Unmarshal(bytes, &members)
68+
err = json.Unmarshal(output, &members)
5769
if err != nil {
5870
return nil, UnmarshalError{err}
5971
}

0 commit comments

Comments
 (0)