github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/commands/files/linkfile.go (about)

     1  package files
     2  
     3  import (
     4  	"io"
     5  	"os"
     6  	"strings"
     7  )
     8  
     9  type Symlink struct {
    10  	name   string
    11  	path   string
    12  	Target string
    13  	stat   os.FileInfo
    14  
    15  	reader io.Reader
    16  }
    17  
    18  func NewLinkFile(name, path, target string, stat os.FileInfo) File {
    19  	return &Symlink{
    20  		name:   name,
    21  		path:   path,
    22  		Target: target,
    23  		stat:   stat,
    24  		reader: strings.NewReader(target),
    25  	}
    26  }
    27  
    28  func (lf *Symlink) IsDirectory() bool {
    29  	return false
    30  }
    31  
    32  func (lf *Symlink) NextFile() (File, error) {
    33  	return nil, io.EOF
    34  }
    35  
    36  func (f *Symlink) FileName() string {
    37  	return f.name
    38  }
    39  
    40  func (f *Symlink) Close() error {
    41  	return nil
    42  }
    43  
    44  func (f *Symlink) FullPath() string {
    45  	return f.path
    46  }
    47  
    48  func (f *Symlink) Read(b []byte) (int, error) {
    49  	return f.reader.Read(b)
    50  }