Skip to content

Commit 41e8923

Browse files
committed
Merge branch 'ipfs-master'
2 parents 8e3700e + c173ec7 commit 41e8923

File tree

4 files changed

+71
-4
lines changed

4 files changed

+71
-4
lines changed

add.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"errors"
77
"io"
88
"os"
9-
"path"
9+
"path/filepath"
1010

1111
files "github.com/ipfs/go-ipfs-files"
1212
)
@@ -98,7 +98,7 @@ func (s *Shell) AddDir(dir string) (string, error) {
9898
if err != nil {
9999
return "", err
100100
}
101-
slf := files.NewSliceDirectory([]files.DirEntry{files.FileEntry(path.Base(dir), sf)})
101+
slf := files.NewSliceDirectory([]files.DirEntry{files.FileEntry(filepath.Base(dir), sf)})
102102
reader := files.NewMultiFileReader(slf, true)
103103

104104
resp, err := s.Request("add").

logger.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package shell
2+
3+
import (
4+
"context"
5+
"encoding/json"
6+
"io"
7+
)
8+
9+
// Logger is used to handle incoming logs from the ipfs node
10+
type Logger struct {
11+
resp io.ReadCloser
12+
dec *json.Decoder
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+
return out, l.dec.Decode(&out)
19+
}
20+
21+
// Close is used to close our reader
22+
func (l Logger) Close() error {
23+
return l.resp.Close()
24+
}
25+
26+
// GetLogs is used to retrieve a parsable logger object
27+
func (s *Shell) GetLogs(ctx context.Context) (Logger, error) {
28+
resp, err := s.Request("log/tail").Send(ctx)
29+
if err != nil {
30+
return Logger{}, err
31+
}
32+
if resp.Error != nil {
33+
resp.Output.Close()
34+
return Logger{}, resp.Error
35+
}
36+
return newLogger(resp.Output), nil
37+
}
38+
39+
func newLogger(resp io.ReadCloser) Logger {
40+
return Logger{resp, json.NewDecoder(resp)}
41+
}

logger_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package shell
2+
3+
import (
4+
"context"
5+
"testing"
6+
)
7+
8+
func TestLogger(t *testing.T) {
9+
ctx, cancel := context.WithCancel(context.Background())
10+
defer cancel()
11+
sh := NewShell(shellUrl)
12+
logger, err := sh.GetLogs(ctx)
13+
if err != nil {
14+
t.Fatal(err)
15+
}
16+
defer func() {
17+
if err := logger.Close(); err != nil {
18+
t.Fatal(err)
19+
}
20+
}()
21+
if l, err := logger.Next(); err != nil {
22+
t.Fatal(err)
23+
} else if l == nil {
24+
t.Fatal("no logs found")
25+
}
26+
}

shell_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ func TestDagPut(t *testing.T) {
320320

321321
c, err := s.DagPut(`{"x": "abc","y":"def"}`, "json", "cbor")
322322
is.Nil(err)
323-
is.Equal(c, "zdpuAt47YjE9XTgSxUBkiYCbmnktKajQNheQBGASHj3FfYf8M")
323+
is.Equal(c, "bafyreidrm3r2k6vlxqp2fk47sboeycf7apddib47w7cyagrajtpaxxl2pi")
324324
}
325325

326326
func TestDagPutWithOpts(t *testing.T) {
@@ -329,7 +329,7 @@ func TestDagPutWithOpts(t *testing.T) {
329329

330330
c, err := s.DagPutWithOpts(`{"x": "abc","y":"def"}`, options.Dag.Pin("true"))
331331
is.Nil(err)
332-
is.Equal(c, "zdpuAt47YjE9XTgSxUBkiYCbmnktKajQNheQBGASHj3FfYf8M")
332+
is.Equal(c, "bafyreidrm3r2k6vlxqp2fk47sboeycf7apddib47w7cyagrajtpaxxl2pi")
333333
}
334334

335335
func TestStatsBW(t *testing.T) {

0 commit comments

Comments
 (0)