@cryptotaxi247 / kubo / commits / 3ff880b02

skip searching for child on -r flag

License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>

Jeromy committed Dec 18, 2015 at 21:57 UTC 3ff880b023f33975e033efe156123a379dbb5a70
1 file changed +16 -13
core/commands/files/files.go
+16 -13
@@ -639,7 +639,7 @@ remove files or directories
639 dir, name := gopath.Split(path)
640 parent, err := mfs.Lookup(nd.FilesRoot, dir)
641 if err != nil {
642 - res.SetError(err, cmds.ErrNormal)
642 + res.SetError(fmt.Errorf("parent lookup: %s", err), cmds.ErrNormal)
643 return
644 }
645
@@ -649,26 +649,29 @@ remove files or directories
649 return
650 }
651
652 + dashr, _, _ := req.Option("r").Bool()
653 +
654 + // if '-r' specified, don't check file type (in bad scenarios, the block may not exist)
655 + if dashr {
656 + err := pdir.Unlink(name)
657 + if err != nil {
658 + res.SetError(err, cmds.ErrNormal)
659 + return
660 + }
661 +
662 + return
663 + }
664 +
665 childi, err := pdir.Child(name)
666 if err != nil {
667 res.SetError(err, cmds.ErrNormal)
668 return
669 }
670
658 - dashr, _, _ := req.Option("r").Bool()
659 -
671 switch childi.(type) {
672 case *mfs.Directory:
662 - if dashr {
663 - err := pdir.Unlink(name)
664 - if err != nil {
665 - res.SetError(err, cmds.ErrNormal)
666 - return
667 - }
668 - } else {
669 - res.SetError(fmt.Errorf("%s is a directory, use -r to remove directories", path), cmds.ErrNormal)
670 - return
671 - }
673 + res.SetError(fmt.Errorf("%s is a directory, use -r to remove directories", path), cmds.ErrNormal)
674 + return
675 default:
676 err := pdir.Unlink(name)
677 if err != nil {