@cryptotaxi247 / kubo / commits / b5fd9492d

fixes to make interface more usable

Jeromy committed Sep 10, 2014 at 20:56 UTC b5fd9492d70527dddc49482a2ff536d22403b6e2
6 files changed +46 -9
core/commands/add.go
+10
@@ -103,6 +103,16 @@ func addFile(n *core.IpfsNode, fpath string, depth int) (*dag.Node, error) {
103 return nil, err
104 }
105
106 + k, err := root.Key()
107 + if err != nil {
108 + return nil, err
109 + }
110 +
111 + log.Info("Adding file: %s = %s\n", fpath, k.Pretty())
112 + for _, l := range root.Links {
113 + log.Info("SubBlock: %s\n", l.Hash.B58String())
114 + }
115 +
116 return root, addNode(n, root, fpath)
117 }
118
core/commands/commands.go
+4
@@ -4,6 +4,10 @@ import (
4 "io"
5
6 "github.com/jbenet/go-ipfs/core"
7 +
8 + logging "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/op/go-logging"
9 )
10
11 +var log = logging.MustGetLogger("commands")
12 +
13 type CmdFunc func(*core.IpfsNode, []string, map[string]interface{}, io.Writer) error
core/core.go
+1
@@ -16,6 +16,7 @@ import (
16 exchange "github.com/jbenet/go-ipfs/exchange"
17 bitswap "github.com/jbenet/go-ipfs/exchange/bitswap"
18 merkledag "github.com/jbenet/go-ipfs/merkledag"
19 + namesys "github.com/jbenet/go-ipfs/namesys"
20 inet "github.com/jbenet/go-ipfs/net"
21 mux "github.com/jbenet/go-ipfs/net/mux"
22 netservice "github.com/jbenet/go-ipfs/net/service"
fuse/readonly/readonly_unix.go
+24 -7
@@ -14,6 +14,8 @@ import (
14 "syscall"
15 "time"
16
17 + "code.google.com/p/goprotobuf/proto"
18 +
19 "github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse"
20 "github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse/fs"
21 core "github.com/jbenet/go-ipfs/core"
@@ -72,20 +74,35 @@ func (*Root) ReadDir(intr fs.Intr) ([]fuse.Dirent, fuse.Error) {
74
75 // Node is the core object representing a filesystem tree node.
76 type Node struct {
75 - Ipfs *core.IpfsNode
76 - Nd *mdag.Node
77 - fd *mdag.DagReader
77 + Ipfs *core.IpfsNode
78 + Nd *mdag.Node
79 + fd *mdag.DagReader
80 + cached *mdag.PBData
81 +}
82 +
83 +func (s *Node) loadData() error {
84 + s.cached = new(mdag.PBData)
85 + return proto.Unmarshal(s.Nd.Data, s.cached)
86 }
87
88 // Attr returns the attributes of a given node.
89 func (s *Node) Attr() fuse.Attr {
90 u.DOut("Node attr.\n")
83 - if len(s.Nd.Links) > 0 {
91 + if s.cached == nil {
92 + s.loadData()
93 + }
94 + switch s.cached.GetType() {
95 + case mdag.PBData_Directory:
96 + u.DOut("this is a directory.\n")
97 return fuse.Attr{Mode: os.ModeDir | 0555}
98 + case mdag.PBData_File, mdag.PBData_Raw:
99 + u.DOut("this is a file.\n")
100 + size, _ := s.Nd.Size()
101 + return fuse.Attr{Mode: 0444, Size: uint64(size)}
102 + default:
103 + u.PErr("Invalid data type.")
104 + return fuse.Attr{}
105 }
86 -
87 - size, _ := s.Nd.Size()
88 - return fuse.Attr{Mode: 0444, Size: uint64(size)}
106 }
107
108 // Lookup performs a lookup under this node.
merkledag/merkledag.go
+6 -2
@@ -3,7 +3,8 @@ package merkledag
3 import (
4 "fmt"
5
6 - "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
6 + proto "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
7 + logging "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/op/go-logging"
8
9 mh "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multihash"
10 blocks "github.com/jbenet/go-ipfs/blocks"
@@ -11,6 +12,8 @@ import (
12 u "github.com/jbenet/go-ipfs/util"
13 )
14
15 +var log = logging.MustGetLogger("commands")
16 +
17 // NodeMap maps u.Keys to Nodes.
18 // We cannot use []byte/Multihash for keys :(
19 // so have to convert Multihash bytes to string (u.Key)
@@ -105,7 +108,7 @@ type DAGService struct {
108 // Add adds a node to the DAGService, storing the block in the BlockService
109 func (n *DAGService) Add(nd *Node) (u.Key, error) {
110 k, _ := nd.Key()
108 - u.DOut("DagService Add [%s]\n", k.Pretty())
111 + log.Debug("DagService Add [%s]\n", k.Pretty())
112 if n == nil {
113 return "", fmt.Errorf("DAGService is nil")
114 }
@@ -126,6 +129,7 @@ func (n *DAGService) Add(nd *Node) (u.Key, error) {
129 func (n *DAGService) AddRecursive(nd *Node) error {
130 _, err := n.Add(nd)
131 if err != nil {
132 + log.Info("AddRecursive Error: %s\n", err)
133 return err
134 }
135
routing/dht/routing.go
+1
@@ -101,6 +101,7 @@ func (dht *IpfsDHT) Provide(ctx context.Context, key u.Key) error {
101 dht.providers.AddProvider(key, dht.self)
102 peers := dht.routingTables[0].NearestPeers(kb.ConvertKey(key), PoolSize)
103 if len(peers) == 0 {
104 + // Early out for no targets
105 return nil
106 }
107