Browse Source

Added support for arm in jacobsa/fuse

Added a static lib folder to survive cleans
luis 7 năm trước cách đây
mục cha
commit
b70d68e670

+ 1 - 1
Makefile

@@ -1,4 +1,4 @@
-GOPATH=$(CURDIR)/deps:$(CURDIR)
+GOPATH=$(CURDIR)/deps:$(CURDIR)/vendor:$(CURDIR)
 DIST=./DIST
 
 all:

+ 1 - 1
env.sh

@@ -1 +1 @@
-export GOPATH=$(pwd)/deps:$(pwd)
+export GOPATH=$(pwd)/deps:$(pwd)/vendor:$(pwd)

+ 4 - 3
src/gdrivemount/cmd/gdrivemount/main.go

@@ -9,7 +9,8 @@ import (
 	"github.com/jacobsa/fuse/fuseutil"
 
 	"dev.hexasoftware.com/hxs/prettylog"
-	_ "github.com/icattlecoder/godaemon"
+
+	_ "github.com/icattlecoder/godaemon" // No reason
 )
 
 var (
@@ -30,8 +31,8 @@ func main() {
 
 	server := fuseutil.NewFileSystemServer(gdriveFS)
 
-	mfs, err := fuse.Mount(flag.Arg(0), server, &fuse.MountConfig{DebugLogger: prettylog.New("fuse"), ErrorLogger: prettylog.New("fuse-err")})
-	//mfs, err := fuse.Mount(flag.Arg(0), server, &fuse.MountConfig{})
+	//mfs, err := fuse.Mount(flag.Arg(0), server, &fuse.MountConfig{DebugLogger: prettylog.New("fuse"), ErrorLogger: prettylog.New("fuse-err")})
+	mfs, err := fuse.Mount(flag.Arg(0), server, &fuse.MountConfig{})
 	if err != nil {
 		log.Fatal("Failed mounting path", flag.Arg(0))
 	}

+ 15 - 4
src/gdrivemount/gdrive-fuse.go

@@ -6,6 +6,7 @@ import (
 	"os"
 	"os/user"
 	"strconv"
+	"syscall"
 	"time"
 
 	"dev.hexasoftware.com/hxs/prettylog"
@@ -457,10 +458,9 @@ func (fs *GDriveFS) CreateFile(ctx context.Context, op *fuseops.CreateFileOp) (e
 		err = fuse.ENOENT
 		return
 	}
-	// Only write on My Drive for now
+	// Only write on child folders
 	if parentFile.Inode == fuseops.RootInodeID {
-		err = fuse.ENOATTR
-		return
+		return syscall.EPERM
 	}
 
 	// Generate ID
@@ -554,6 +554,10 @@ func (fs *GDriveFS) Unlink(ctx context.Context, op *fuseops.UnlinkOp) (err error
 	if parentEntry == nil {
 		return fuse.ENOENT
 	}
+	if parentEntry.Inode == fuseops.RootInodeID {
+		return syscall.EPERM
+	}
+
 	fileEntry := parentEntry.findByName(op.Name, false)
 	if fileEntry == nil {
 		return fuse.ENOATTR
@@ -581,7 +585,7 @@ func (fs *GDriveFS) MkDir(ctx context.Context, op *fuseops.MkDirOp) (err error)
 		return fuse.ENOENT
 	}
 	if parentFile.Inode == fuseops.RootInodeID {
-		return fuse.ENOATTR
+		return syscall.EPERM
 	}
 
 	// Should check existent first too
@@ -614,6 +618,9 @@ func (fs *GDriveFS) RmDir(ctx context.Context, op *fuseops.RmDirOp) (err error)
 	if parentFile == nil {
 		return fuse.ENOENT
 	}
+	if parentFile.Inode == fuseops.RootInodeID {
+		return syscall.EPERM
+	}
 
 	theFile := parentFile.findByName(op.Name, false)
 
@@ -639,6 +646,10 @@ func (fs *GDriveFS) Rename(ctx context.Context, op *fuseops.RenameOp) (err error
 		return fuse.ENOENT
 	}
 
+	if oldParentFile.Inode == fuseops.RootInodeID || newParentFile.Inode == fuseops.RootInodeID {
+		return syscall.EPERM
+	}
+
 	oldFile := oldParentFile.findByName(op.OldName, false)
 
 	ngFile := &drive.File{

deps/src/github.com/jacobsa/fuse → vendor/src/github.com/jacobsa/fuse