@@ -65,22 +65,21 @@ func (d *Directory) Open(tpath []string, mode int) (File, error) {
65
65
66
66
// consider combining into a single method...
67
67
type childCloser interface {
68
- closeChildFile (string ) error
69
- closeChildDir (string ) error
68
+ closeChild (string ) error
70
69
}
71
70
72
- func (d * Directory ) closeChildFile (name string ) error {
73
- fi , ok := d .files [ name ]
74
- if ! ok {
75
- return errors . New ( "no open child file by given name" )
71
+ func (d * Directory ) closeChild (name string ) error {
72
+ child , err := d .Child ( name )
73
+ if err != nil {
74
+ return err
76
75
}
77
76
78
- nnode , err := fi . mod .GetNode ()
77
+ nd , err := child .GetNode ()
79
78
if err != nil {
80
79
return err
81
80
}
82
81
83
- _ , err = d .dserv .Add (nnode )
82
+ _ , err = d .dserv .Add (nd )
84
83
if err != nil {
85
84
return err
86
85
}
@@ -90,16 +89,12 @@ func (d *Directory) closeChildFile(name string) error {
90
89
return err
91
90
}
92
91
93
- err = d .node .AddNodeLink (name , nnode )
92
+ err = d .node .AddNodeLink (name , nd )
94
93
if err != nil {
95
94
return err
96
95
}
97
96
98
- return d .parent .closeChildDir (d .name )
99
- }
100
-
101
- func (d * Directory ) closeChildDir (name string ) error {
102
- panic ("NYI" )
97
+ return d .parent .closeChild (d .name )
103
98
}
104
99
105
100
func (d * Directory ) childFile (name string ) (* file , error ) {
@@ -208,7 +203,7 @@ func (d *Directory) Mkdir(name string) (*Directory, error) {
208
203
return nil , err
209
204
}
210
205
211
- err = d .parent .closeChildDir (d .name )
206
+ err = d .parent .closeChild (d .name )
212
207
if err != nil {
213
208
return nil , err
214
209
}
@@ -225,7 +220,7 @@ func (d *Directory) Unlink(name string) error {
225
220
return err
226
221
}
227
222
228
- return d .parent .closeChildDir ( name )
223
+ return d .parent .closeChild ( d . name )
229
224
}
230
225
231
226
func (d * Directory ) RenameEntry (oldname , newname string ) error {
@@ -244,7 +239,7 @@ func (d *Directory) RenameEntry(oldname, newname string) error {
244
239
245
240
delete (d .childDirs , oldname )
246
241
d .childDirs [newname ] = dir
247
- return d .parent .closeChildDir (d .name )
242
+ return d .parent .closeChild (d .name )
248
243
}
249
244
250
245
fi , err := d .childFile (oldname )
@@ -262,7 +257,7 @@ func (d *Directory) RenameEntry(oldname, newname string) error {
262
257
263
258
delete (d .childDirs , oldname )
264
259
d .files [newname ] = fi
265
- return d .parent .closeChildDir (d .name )
260
+ return d .parent .closeChild (d .name )
266
261
}
267
262
return ErrNoSuch
268
263
}
@@ -294,7 +289,7 @@ func (d *Directory) AddChild(name string, nd *dag.Node) error {
294
289
default :
295
290
panic ("invalid unixfs node" )
296
291
}
297
- return d .parent .closeChildDir (name )
292
+ return d .parent .closeChild (name )
298
293
}
299
294
300
295
func (d * Directory ) GetNode () (* dag.Node , error ) {
0 commit comments