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) {