func addDir(n *core.IpfsNode, dir cmds.File, added *AddOutput) (*dag.Node, error) { log.Infof("adding directory: %s", dir.FileName()) tree := &dag.Node{Data: ft.FolderPBData()} for { file, err := dir.NextFile() if err != nil && err != io.EOF { return nil, err } if file == nil { break } node, err := addFile(n, file, added) if err != nil { return nil, err } _, name := path.Split(file.FileName()) err = tree.AddNodeLink(name, node) if err != nil { return nil, err } } err := addDagnode(added, dir.FileName(), tree) if err != nil { return nil, err } err = addNode(n, tree) if err != nil { return nil, err } return tree, nil }