github.com/zignig/go-ipfs@v0.0.0-20141111235910-c9e5fdf55a52/core/commands/cat.go (about)

     1  package commands
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  
     7  	"github.com/jbenet/go-ipfs/core"
     8  	uio "github.com/jbenet/go-ipfs/unixfs/io"
     9  )
    10  
    11  func Cat(n *core.IpfsNode, args []string, opts map[string]interface{}, out io.Writer) error {
    12  	for _, fn := range args {
    13  		dagnode, err := n.Resolver.ResolvePath(fn)
    14  		if err != nil {
    15  			return fmt.Errorf("catFile error: %v", err)
    16  		}
    17  
    18  		read, err := uio.NewDagReader(dagnode, n.DAG)
    19  		if err != nil {
    20  			return fmt.Errorf("cat error: %v", err)
    21  		}
    22  
    23  		_, err = io.Copy(out, read)
    24  		if err != nil {
    25  			return fmt.Errorf("cat error: %v", err)
    26  		}
    27  	}
    28  	return nil
    29  }