fs

package
v0.0.0-...-156a9a6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2016 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FileExists

func FileExists(path string) (bool, error)

Types

type Context

type Context interface{}

Context interface

type ContextFS

type ContextFS interface {
	// Attributes
	CGetAttr(name string, fctx *fuse.Context, ctx Context) (*fuse.Attr, fuse.Status)

	// These should update the file's ctime too.
	CChmod(name string, mode uint32, fctx *fuse.Context, ctx Context) (code fuse.Status)
	CChown(name string, uid uint32, gid uint32, fctx *fuse.Context, ctx Context) (code fuse.Status)
	CUtimens(name string, Atime *time.Time, Mtime *time.Time, fctx *fuse.Context, ctx Context) (code fuse.Status)

	CTruncate(name string, size uint64, fctx *fuse.Context, ctx Context) (code fuse.Status)

	CAccess(name string, mode uint32, fctx *fuse.Context, ctx Context) (code fuse.Status)

	// Tree structure
	CLink(oldName string, newName string, fctx *fuse.Context, ctx Context) (code fuse.Status)
	CMkdir(name string, mode uint32, fctx *fuse.Context, ctx Context) fuse.Status
	CMknod(name string, mode uint32, dev uint32, fctx *fuse.Context, ctx Context) fuse.Status
	CRename(oldName string, newName string, fctx *fuse.Context, ctx Context) (code fuse.Status)
	CRmdir(name string, fctx *fuse.Context, ctx Context) (code fuse.Status)
	CUnlink(name string, fctx *fuse.Context, ctx Context) (code fuse.Status)

	// Extended attributes.
	CGetXAttr(name string, attribute string, fctx *fuse.Context, ctx Context) (data []byte, code fuse.Status)
	CListXAttr(name string, fctx *fuse.Context, ctx Context) (attributes []string, code fuse.Status)
	CRemoveXAttr(name string, attr string, fctx *fuse.Context, ctx Context) fuse.Status
	CSetXAttr(name string, attr string, data []byte, flags int, fctx *fuse.Context, ctx Context) fuse.Status

	// File handling.  If opening for writing, the file's mtime
	// should be updated too.
	COpen(name string, flags uint32, fctx *fuse.Context, ctx Context) (file nodefs.File, code fuse.Status)
	CCreate(name string, flags uint32, mode uint32, fctx *fuse.Context, ctx Context) (file nodefs.File, code fuse.Status)

	// Directory handling
	COpenDir(name string, fctx *fuse.Context, ctx Context) (stream []fuse.DirEntry, code fuse.Status)

	// Symlinks.
	CSymlink(value string, linkName string, fctx *fuse.Context, ctx Context) (code fuse.Status)
	CReadlink(name string, fctx *fuse.Context, ctx Context) (string, fuse.Status)
}

ContextFS interface this is pathfs.FileSystem like interface

type LoopFS

type LoopFS struct {
	pathfs.FileSystem
	//	RewriteFS
	Root     string
	ReadOnly bool
}

FS definition

func NewLoopFS

func NewLoopFS(root string) LoopFS

func (*LoopFS) Access

func (fs *LoopFS) Access(name string, mode uint32, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) Chmod

func (fs *LoopFS) Chmod(name string, mode uint32, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) Chown

func (fs *LoopFS) Chown(name string, uid uint32, gid uint32, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) Create

func (fs *LoopFS) Create(name string, flags uint32, mode uint32, ctx *fuse.Context) (file nodefs.File, code fuse.Status)

func (*LoopFS) GetAttr

func (fs *LoopFS) GetAttr(name string, ctx *fuse.Context) (*fuse.Attr, fuse.Status)

func (*LoopFS) GetXAttr

func (fs *LoopFS) GetXAttr(name string, attr string, ctx *fuse.Context) ([]byte, fuse.Status)
func (fs *LoopFS) Link(oldName string, newName string, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) ListXAttr

func (fs *LoopFS) ListXAttr(name string, ctx *fuse.Context) ([]string, fuse.Status)

func (*LoopFS) Mkdir

func (fs *LoopFS) Mkdir(name string, mode uint32, ctx *fuse.Context) fuse.Status

func (*LoopFS) Mknod

func (fs *LoopFS) Mknod(name string, mode uint32, dev uint32, ctx *fuse.Context) fuse.Status

func (*LoopFS) OnMount

func (fs *LoopFS) OnMount(nodeFs *pathfs.PathNodeFs)

func (*LoopFS) OnUnmount

func (fs *LoopFS) OnUnmount()

func (*LoopFS) Open

func (fs *LoopFS) Open(name string, flags uint32, ctx *fuse.Context) (file nodefs.File, code fuse.Status)

func (*LoopFS) OpenDir

func (fs *LoopFS) OpenDir(name string, ctx *fuse.Context) (stream []fuse.DirEntry, status fuse.Status)
func (fs *LoopFS) Readlink(name string, ctx *fuse.Context) (string, fuse.Status)

func (*LoopFS) RemoveXAttr

func (fs *LoopFS) RemoveXAttr(name string, attr string, ctx *fuse.Context) fuse.Status

func (*LoopFS) Rename

func (fs *LoopFS) Rename(oldName string, newName string, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) RewritePath

func (fs *LoopFS) RewritePath(path string) string

func (*LoopFS) Rmdir

func (fs *LoopFS) Rmdir(name string, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) SetDebug

func (fs *LoopFS) SetDebug(debug bool)

func (*LoopFS) SetReadOnly

func (fs *LoopFS) SetReadOnly(readOnly bool)

LoopFS implementation

func (*LoopFS) SetXAttr

func (fs *LoopFS) SetXAttr(name string, attr string, data []byte, flags int, ctx *fuse.Context) fuse.Status

func (*LoopFS) StatFs

func (fs *LoopFS) StatFs(name string) *fuse.StatfsOut

func (*LoopFS) String

func (fs *LoopFS) String() string
func (fs *LoopFS) Symlink(value string, linkName string, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) Truncate

func (fs *LoopFS) Truncate(name string, offset uint64, ctx *fuse.Context) (code fuse.Status)
func (fs *LoopFS) Unlink(name string, ctx *fuse.Context) (code fuse.Status)

func (*LoopFS) Utimens

func (fs *LoopFS) Utimens(name string, Atime *time.Time, Mtime *time.Time, ctx *fuse.Context) (code fuse.Status)

type RewriteFS

type RewriteFS interface {
	RewritePath(string) string
}

path rewriting FS base

type RuleFS

type RuleFS struct {
	pathfs.FileSystem
	RuleFSMatch
	ReadOnly bool
}

rule FS definition

func NewRuleFS

func NewRuleFS(rule RuleFSMatch, fs pathfs.FileSystem) RuleFS

func (*RuleFS) Access

func (fs *RuleFS) Access(name string, mode uint32, fctx *fuse.Context) (code fuse.Status)

func (*RuleFS) Chmod

func (fs *RuleFS) Chmod(name string, mode uint32, fctx *fuse.Context) fuse.Status

func (*RuleFS) Chown

func (fs *RuleFS) Chown(name string, uid uint32, gid uint32, fctx *fuse.Context) fuse.Status

func (*RuleFS) Create

func (fs *RuleFS) Create(name string, flags uint32, mode uint32, fctx *fuse.Context) (file nodefs.File, code fuse.Status)

func (*RuleFS) GetAttr

func (fs *RuleFS) GetAttr(name string, fctx *fuse.Context) (*fuse.Attr, fuse.Status)

func (*RuleFS) GetXAttr

func (fs *RuleFS) GetXAttr(name string, attr string, fctx *fuse.Context) ([]byte, fuse.Status)
func (fs *RuleFS) Link(oldName string, newName string, fctx *fuse.Context) fuse.Status

func (*RuleFS) ListXAttr

func (fs *RuleFS) ListXAttr(name string, fctx *fuse.Context) ([]string, fuse.Status)

func (*RuleFS) Mkdir

func (fs *RuleFS) Mkdir(name string, mode uint32, fctx *fuse.Context) fuse.Status

func (*RuleFS) Mknod

func (fs *RuleFS) Mknod(name string, mode uint32, dev uint32, fctx *fuse.Context) fuse.Status

func (*RuleFS) Open

func (fs *RuleFS) Open(name string, flags uint32, fctx *fuse.Context) (file nodefs.File, code fuse.Status)

func (*RuleFS) OpenDir

func (fs *RuleFS) OpenDir(name string, fctx *fuse.Context) (stream []fuse.DirEntry, status fuse.Status)
func (fs *RuleFS) Readlink(name string, fctx *fuse.Context) (string, fuse.Status)

func (*RuleFS) RemoveXAttr

func (fs *RuleFS) RemoveXAttr(name string, attr string, fctx *fuse.Context) fuse.Status

func (*RuleFS) Rename

func (fs *RuleFS) Rename(oldName string, newName string, fctx *fuse.Context) fuse.Status

func (*RuleFS) Rmdir

func (fs *RuleFS) Rmdir(name string, fctx *fuse.Context) fuse.Status

func (*RuleFS) SetReadOnly

func (fs *RuleFS) SetReadOnly(readOnly bool)

FS implementation

func (*RuleFS) SetXAttr

func (fs *RuleFS) SetXAttr(name string, attr string, data []byte, flags int, fctx *fuse.Context) fuse.Status
func (fs *RuleFS) Symlink(value string, linkName string, fctx *fuse.Context) fuse.Status

func (*RuleFS) Truncate

func (fs *RuleFS) Truncate(name string, offset uint64, fctx *fuse.Context) fuse.Status
func (fs *RuleFS) Unlink(name string, fctx *fuse.Context) fuse.Status

func (*RuleFS) Utimens

func (fs *RuleFS) Utimens(name string, Atime *time.Time, Mtime *time.Time, fctx *fuse.Context) fuse.Status

type RuleFSMatch

type RuleFSMatch interface {
	// match rule
	MatchPath(name string) (ContextFS, Context)
}

rule match

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL