提交 b559c3e8 作者: Jeromy

PutNode creates intermediary nodes

License: MIT
Signed-off-by: 's avatarJeromy <jeromyj@gmail.com>
上级 9c641f99
......@@ -328,6 +328,13 @@ func (adder *Adder) addNode(node *dag.Node, path string) error {
path = key.Pretty()
}
dir := gopath.Dir(path)
if dir != "." {
if err := mfs.Mkdir(adder.mr, dir, true); err != nil {
return err
}
}
if err := mfs.PutNode(adder.mr, path, node); err != nil {
return err
}
......
......@@ -268,7 +268,9 @@ func (d *Directory) Mkdir(name string) (*Directory, error) {
return nil, err
}
return d.childDir(name)
dirobj := NewDirectory(d.ctx, name, ndir, d, d.dserv)
d.childDirs[name] = dirobj
return dirobj, nil
}
func (d *Directory) Unlink(name string) error {
......
......@@ -116,7 +116,10 @@ func Mkdir(r *Root, pth string, parents bool) error {
if len(parts) == 0 {
// this will only happen on 'mkdir /'
return fmt.Errorf("cannot mkdir '%s'", pth)
if parents {
return nil
}
return fmt.Errorf("cannot create directory '/': Already exists")
}
cur := r.GetValue().(*Directory)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论