github.com/HashDataInc/packer@v1.3.2/packer/rpc/fileinfo.go (about)

     1  package rpc
     2  
     3  import (
     4  	"os"
     5  	"time"
     6  )
     7  
     8  func NewFileInfo(fi os.FileInfo) *fileInfo {
     9  	if fi == nil {
    10  		return nil
    11  	}
    12  
    13  	return &fileInfo{N: fi.Name(), S: fi.Size(), M: fi.Mode(), T: fi.ModTime()}
    14  }
    15  
    16  type fileInfo struct {
    17  	N string
    18  	S int64
    19  	M os.FileMode
    20  	T time.Time
    21  }
    22  
    23  func (fi fileInfo) Name() string      { return fi.N }
    24  func (fi fileInfo) Size() int64       { return fi.S }
    25  func (fi fileInfo) Mode() os.FileMode { return fi.M }
    26  func (fi fileInfo) ModTime() time.Time {
    27  	if fi.T.IsZero() {
    28  		return time.Now()
    29  	}
    30  	return fi.T
    31  }
    32  func (fi fileInfo) IsDir() bool      { return fi.M.IsDir() }
    33  func (fi fileInfo) Sys() interface{} { return nil }