@cryptotaxi247 / kubo / commits / dfd98f27b

mfs.Mkdir returns the final Directory it creates

License: MIT Signed-off-by: Stephen Whitmore <noffle@ipfs.io>

Stephen Whitmore committed Apr 6, 2016 at 12:31 UTC dfd98f27b25868c770cb1d50c3a3a82e5f53453d
3 files changed +13 -13
core/commands/files/files.go
+1 -1
@@ -650,7 +650,7 @@ Examples:
650 flush = true
651 }
652
653 - err = mfs.Mkdir(n.FilesRoot, dirtomake, dashp, flush)
653 + _, err = mfs.Mkdir(n.FilesRoot, dirtomake, dashp, flush)
654 if err != nil {
655 res.SetError(err, cmds.ErrNormal)
656 return
core/coreunix/add.go
+2 -2
@@ -328,7 +328,7 @@ func (adder *Adder) addNode(node *dag.Node, path string) error {
328
329 dir := gopath.Dir(path)
330 if dir != "." {
331 - if err := mfs.Mkdir(adder.mr, dir, true, false); err != nil {
331 + if _, err := mfs.Mkdir(adder.mr, dir, true, false); err != nil {
332 return err
333 }
334 }
@@ -399,7 +399,7 @@ func (adder *Adder) addFile(file files.File) error {
399 func (adder *Adder) addDir(dir files.File) error {
400 log.Infof("adding directory: %s", dir.FileName())
401
402 - err := mfs.Mkdir(adder.mr, dir.FileName(), true, false)
402 + _, err := mfs.Mkdir(adder.mr, dir.FileName(), true, false)
403 if err != nil {
404 return err
405 }
mfs/ops.go
+10 -10
@@ -100,9 +100,9 @@ func PutNode(r *Root, path string, nd *dag.Node) error {
100
101 // Mkdir creates a directory at 'path' under the directory 'd', creating
102 // intermediary directories as needed if 'mkparents' is set to true
103 -func Mkdir(r *Root, pth string, mkparents bool, flush bool) error {
103 +func Mkdir(r *Root, pth string, mkparents bool, flush bool) (*Directory, error) {
104 if pth == "" {
105 - return nil
105 + return nil, nil
106 }
107 parts := path.SplitList(pth)
108 if parts[0] == "" {
@@ -117,9 +117,9 @@ func Mkdir(r *Root, pth string, mkparents bool, flush bool) error {
117 if len(parts) == 0 {
118 // this will only happen on 'mkdir /'
119 if mkparents {
120 - return nil
120 + return nil, nil
121 }
122 - return fmt.Errorf("cannot create directory '/': Already exists")
122 + return nil, fmt.Errorf("cannot create directory '/': Already exists")
123 }
124
125 cur := r.GetValue().(*Directory)
@@ -128,16 +128,16 @@ func Mkdir(r *Root, pth string, mkparents bool, flush bool) error {
128 if err == os.ErrNotExist && mkparents {
129 mkd, err := cur.Mkdir(d)
130 if err != nil {
131 - return err
131 + return nil, err
132 }
133 fsn = mkd
134 } else if err != nil {
135 - return err
135 + return nil, err
136 }
137
138 next, ok := fsn.(*Directory)
139 if !ok {
140 - return fmt.Errorf("%s was not a directory", path.Join(parts[:i]))
140 + return nil, fmt.Errorf("%s was not a directory", path.Join(parts[:i]))
141 }
142 cur = next
143 }
@@ -145,18 +145,18 @@ func Mkdir(r *Root, pth string, mkparents bool, flush bool) error {
145 final, err := cur.Mkdir(parts[len(parts)-1])
146 if err != nil {
147 if !mkparents || err != os.ErrExist || final == nil {
148 - return err
148 + return nil, err
149 }
150 }
151
152 if flush {
153 err := final.Flush()
154 if err != nil {
155 - return err
155 + return nil, err
156 }
157 }
158
159 - return nil
159 + return final, nil
160 }
161
162 func Lookup(r *Root, path string) (FSNode, error) {