File tree Expand file tree Collapse file tree 2 files changed +52
-0
lines changed Expand file tree Collapse file tree 2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ package shell
2
+
3
+ import (
4
+ "encoding/json"
5
+ "fmt"
6
+ "io"
7
+ "net/http"
8
+ )
9
+
10
+ // Logger is used to handle incoming logs from the ipfs node
11
+ type Logger struct {
12
+ r io.ReadCloser
13
+ }
14
+
15
+ // Next is used to retrieve the next event from the logging system
16
+ func (l Logger ) Next () (map [string ]interface {}, error ) {
17
+ var out map [string ]interface {}
18
+ if err := json .NewDecoder (l .r ).Decode (& out ); err != nil {
19
+ return nil , err
20
+ }
21
+ return out , nil
22
+ }
23
+
24
+ // GetLogs is used to retrieve a parsable logger object
25
+ func (s * Shell ) GetLogs () (Logger , error ) {
26
+ logURL := fmt .Sprintf ("http://%s/api/v0/log/tail" , s .url )
27
+ req , err := http .NewRequest ("GET" , logURL , nil )
28
+ if err != nil {
29
+ return Logger {}, err
30
+ }
31
+ hc := & http.Client {}
32
+ resp , err := hc .Do (req )
33
+ if err != nil {
34
+ return Logger {}, err
35
+ }
36
+ return Logger {resp .Body }, nil
37
+ }
Original file line number Diff line number Diff line change
1
+ package shell
2
+
3
+ import "testing"
4
+
5
+ func Test_Logger (t * testing.T ) {
6
+ sh := NewLocalShell ()
7
+ logger , err := sh .GetLogs ()
8
+ if err != nil {
9
+ t .Fatal (err )
10
+ }
11
+ _ , err = logger .Next ()
12
+ if err != nil {
13
+ t .Fatal (err )
14
+ }
15
+ }
You can’t perform that action at this time.
0 commit comments