@@ -31,9 +31,9 @@ Mfs is an API for manipulating ipfs objects as if they were a unix filesystem.
31
31
They can be seeded with an initial root hash, or by default are an empty directory.
32
32
33
33
NOTICE:
34
- This API is currently experimental and likely to change and may potentially be
34
+ This API is currently experimental, likely to change, and may potentially be
35
35
unstable. This notice will be removed when that is no longer the case. Feedback
36
- on how this API could be better is very welcome.
36
+ on how this API could be improved is very welcome.
37
37
` ,
38
38
},
39
39
Options : []cmds.Option {
@@ -383,34 +383,14 @@ given mfs filesystem.
383
383
}
384
384
385
385
path := req .Arguments ()[1 ]
386
- err = PutNodeUnderRoot (root , path , nd )
386
+ err = mfs . PutNodeUnderRoot (root , path , nd )
387
387
if err != nil {
388
388
res .SetError (err , cmds .ErrNormal )
389
389
return
390
390
}
391
391
},
392
392
}
393
393
394
- func PutNodeUnderRoot (root * mfs.Root , ipath string , nd * dag.Node ) error {
395
- dir , ok := root .GetValue ().(* mfs.Directory )
396
- if ! ok {
397
- return errors .New ("root did not point to directory" )
398
- }
399
- dirp , filename := gopath .Split (ipath )
400
-
401
- parent , err := mfs .DirLookup (dir , dirp )
402
- if err != nil {
403
- return fmt .Errorf ("lookup '%s' failed: %s" , dirp , err )
404
- }
405
-
406
- pdir , ok := parent .(* mfs.Directory )
407
- if ! ok {
408
- return fmt .Errorf ("%s did not point to directory" , dirp )
409
- }
410
-
411
- return pdir .AddChild (filename , nd )
412
- }
413
-
414
394
var MfsReadCmd = & cmds.Command {
415
395
Helptext : cmds.HelpText {
416
396
Tagline : "Read a file in a given mfs" ,
@@ -528,55 +508,12 @@ Example:
528
508
529
509
src := req .Arguments ()[0 ]
530
510
dst := req .Arguments ()[1 ]
531
- srcDir , srcFname := gopath .Split (src )
532
-
533
- srcObj , err := mfs .DirLookup (rdir , src )
534
- if err != nil {
535
- res .SetError (err , cmds .ErrNormal )
536
- return
537
- }
538
-
539
- var dstDirStr string
540
- var filename string
541
- if dst [len (dst )- 1 ] == '/' {
542
- dstDirStr = dst
543
- filename = srcFname
544
- } else {
545
- dstDirStr , filename = gopath .Split (dst )
546
- }
547
-
548
- dstDiri , err := mfs .DirLookup (rdir , dstDirStr )
549
- if err != nil {
550
- res .SetError (err , cmds .ErrNormal )
551
- return
552
- }
553
-
554
- dstDir := dstDiri .(* mfs.Directory )
555
- nd , err := srcObj .GetNode ()
556
- if err != nil {
557
- res .SetError (err , cmds .ErrNormal )
558
- return
559
- }
560
511
561
- err = dstDir . AddChild ( filename , nd )
512
+ err = mfs . Mv ( rdir , src , dst )
562
513
if err != nil {
563
514
res .SetError (err , cmds .ErrNormal )
564
515
return
565
516
}
566
-
567
- srcDirObji , err := mfs .DirLookup (rdir , srcDir )
568
- if err != nil {
569
- res .SetError (err , cmds .ErrNormal )
570
- return
571
- }
572
-
573
- srcDirObj := srcDirObji .(* mfs.Directory )
574
- err = srcDirObj .Unlink (srcFname )
575
- if err != nil {
576
- res .SetError (err , cmds .ErrNormal )
577
- return
578
- }
579
-
580
517
},
581
518
}
582
519
@@ -709,8 +646,8 @@ func getFileHandle(root *mfs.Root, path string, create bool) (*mfs.File, error)
709
646
710
647
var MfsMkdirCmd = & cmds.Command {
711
648
Helptext : cmds.HelpText {
712
- Tagline : "create a new directory " ,
713
- ShortDescription : `` ,
649
+ Tagline : "make directories " ,
650
+ ShortDescription : `Create the directory if it does not already exist ` ,
714
651
},
715
652
716
653
Arguments : []cmds.Argument {
@@ -749,39 +686,10 @@ var MfsMkdirCmd = &cmds.Command{
749
686
750
687
dirtomake := req .Arguments ()[0 ]
751
688
752
- parts := strings .Split (dirtomake , "/" )
753
- if parts [0 ] == "" {
754
- parts = parts [1 :]
755
- }
756
-
757
- cur := rootdir
758
- for i , d := range parts [:len (parts )- 1 ] {
759
- fsn , err := cur .Child (d )
760
- if err != nil {
761
- if err == os .ErrNotExist && dashp {
762
- mkd , err := cur .Mkdir (d )
763
- if err != nil {
764
- res .SetError (err , cmds .ErrNormal )
765
- return
766
- }
767
- fsn = mkd
768
- }
769
- }
770
-
771
- next , ok := fsn .(* mfs.Directory )
772
- if ! ok {
773
- res .SetError (fmt .Errorf ("%s was not a directory" , strings .Join (parts [:i ], "/" )), cmds .ErrNormal )
774
- return
775
- }
776
- cur = next
777
- }
778
-
779
- _ , err = cur .Mkdir (parts [len (parts )- 1 ])
689
+ err = mfs .Mkdir (rootdir , dirtomake , dashp )
780
690
if err != nil {
781
- if ! dashp || err != os .ErrExist {
782
- res .SetError (err , cmds .ErrNormal )
783
- return
784
- }
691
+ res .SetError (err , cmds .ErrNormal )
692
+ return
785
693
}
786
694
},
787
695
}
0 commit comments