Skip to content
Snippets Groups Projects
Commit b559c3e8 authored by Jeromy Johnson's avatar Jeromy Johnson
Browse files

PutNode creates intermediary nodes


License: MIT
Signed-off-by: default avatarJeromy <jeromyj@gmail.com>
parent 9c641f99
No related branches found
No related tags found
1 merge request!1New
...@@ -328,6 +328,13 @@ func (adder *Adder) addNode(node *dag.Node, path string) error { ...@@ -328,6 +328,13 @@ func (adder *Adder) addNode(node *dag.Node, path string) error {
path = key.Pretty() 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 { if err := mfs.PutNode(adder.mr, path, node); err != nil {
return err return err
} }
......
...@@ -268,7 +268,9 @@ func (d *Directory) Mkdir(name string) (*Directory, error) { ...@@ -268,7 +268,9 @@ func (d *Directory) Mkdir(name string) (*Directory, error) {
return nil, err 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 { func (d *Directory) Unlink(name string) error {
......
...@@ -116,7 +116,10 @@ func Mkdir(r *Root, pth string, parents bool) error { ...@@ -116,7 +116,10 @@ func Mkdir(r *Root, pth string, parents bool) error {
if len(parts) == 0 { if len(parts) == 0 {
// this will only happen on 'mkdir /' // 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) cur := r.GetValue().(*Directory)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment