forked from TrueCloudLab/restic
39 lines
961 B
Go
39 lines
961 B
Go
package webdav
|
|
|
|
import (
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/anacrolix/fuse"
|
|
)
|
|
|
|
// virtFileInfo is used to construct an os.FileInfo for a server.
|
|
type virtFileInfo struct {
|
|
name string
|
|
size int64
|
|
mode os.FileMode
|
|
modtime time.Time
|
|
isdir bool
|
|
}
|
|
|
|
// statically ensure that virtFileInfo implements os.FileInfo.
|
|
var _ os.FileInfo = virtFileInfo{}
|
|
|
|
func (fi virtFileInfo) Name() string { return fi.name }
|
|
func (fi virtFileInfo) Size() int64 { return fi.size }
|
|
func (fi virtFileInfo) Mode() os.FileMode { return fi.mode }
|
|
func (fi virtFileInfo) ModTime() time.Time { return fi.modtime }
|
|
func (fi virtFileInfo) IsDir() bool { return fi.isdir }
|
|
func (fi virtFileInfo) Sys() interface{} { return nil }
|
|
|
|
func fileInfoFromAttr(name string, attr fuse.Attr) os.FileInfo {
|
|
fi := virtFileInfo{
|
|
name: name,
|
|
size: int64(attr.Size),
|
|
mode: attr.Mode,
|
|
modtime: attr.Mtime,
|
|
isdir: (attr.Mode & os.ModeDir) != 0,
|
|
}
|
|
|
|
return fi
|
|
}
|