This commit is contained in:
sparklxb 2017-03-06 13:04:46 +08:00
parent 470d950918
commit 813a4f7456
2 changed files with 22 additions and 17 deletions

View file

@ -26,7 +26,7 @@ var cmdMount = &Command{
2) have a "weed filer" running
These 2 requirements can be achieved with one command "weed server -filer=true"
This uses bazil.org/fuse, whichenables writing FUSE file systems on
This uses bazil.org/fuse, which enables writing FUSE file systems on
Linux, and OS X.
On OS X, it requires OSXFUSE (http://osxfuse.github.com/).

View file

@ -4,6 +4,7 @@ package command
import (
"fmt"
"os"
"runtime"
"bazil.org/fuse"
@ -47,16 +48,10 @@ func runMount(cmd *Command, args []string) bool {
return true
}
type File struct {
FileId filer.FileId
Name string
}
type WFS struct{}
func (File) Attr(context context.Context, attr *fuse.Attr) error {
return nil
}
func (File) ReadAll(ctx context.Context) ([]byte, error) {
return []byte("hello, world\n"), nil
func (WFS) Root() (fs.Node, error) {
return Dir{}, nil
}
type Dir struct {
@ -65,6 +60,8 @@ type Dir struct {
}
func (dir Dir) Attr(context context.Context, attr *fuse.Attr) error {
attr.Inode = 1
attr.Mode = os.ModeDir | 0555
return nil
}
@ -79,13 +76,7 @@ func (dir Dir) Lookup(ctx context.Context, name string) (fs.Node, error) {
return nil, fmt.Errorf("File Not Found for %s", name)
}
type WFS struct{}
func (WFS) Root() (fs.Node, error) {
return Dir{}, nil
}
func (dir *Dir) ReadDir(ctx context.Context) ([]fuse.Dirent, error) {
func (dir Dir) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {
var ret []fuse.Dirent
if dirs, e := filer.ListDirectories(*mountOptions.filer, dir.Path); e == nil {
for _, d := range dirs.Directories {
@ -104,3 +95,17 @@ func (dir *Dir) ReadDir(ctx context.Context) ([]fuse.Dirent, error) {
}
return ret, nil
}
type File struct {
FileId filer.FileId
Name string
}
func (File) Attr(context context.Context, attr *fuse.Attr) error {
attr.Inode = 2
attr.Mode = 0444
return nil
}
func (File) ReadAll(ctx context.Context) ([]byte, error) {
return []byte("hello, world\n"), nil
}