Add fuse mount without read

This commit is contained in:
Ben Sarmiento
2023-11-05 21:25:50 +01:00
parent a9c71a3e93
commit 4bd672f301
6 changed files with 198 additions and 43 deletions

View File

@@ -2,14 +2,21 @@ package zfs
import (
"os"
"time"
"bazil.org/fuse"
"bazil.org/fuse/fs"
"github.com/debridmediamanager.com/zurg/internal/config"
"github.com/debridmediamanager.com/zurg/internal/torrent"
"github.com/debridmediamanager.com/zurg/pkg/logutil"
"golang.org/x/sys/unix"
)
func Mount(mountpoint string) error {
func Mount(mountpoint string, c config.ConfigInterface, t *torrent.TorrentManager) error {
rlog := logutil.NewLogger()
log := rlog.Named("zfs")
options := []fuse.MountOption{
fuse.AllowOther(),
fuse.AllowNonEmptyMount(),
@@ -17,21 +24,24 @@ func Mount(mountpoint string) error {
fuse.DefaultPermissions(),
fuse.FSName("zurgfs"),
}
c, err := fuse.Mount(mountpoint, options...)
conn, err := fuse.Mount(mountpoint, options...)
if err != nil {
return err
}
defer c.Close()
defer conn.Close()
srv := fs.New(c, nil)
srv := fs.New(conn, nil)
filesys := &FS{
uid: uint32(unix.Geteuid()),
gid: uint32(unix.Getegid()),
umask: os.FileMode(0),
uid: uint32(unix.Geteuid()),
gid: uint32(unix.Getegid()),
umask: os.FileMode(0),
c: c,
t: t,
log: log,
initTime: time.Now(),
}
// Serve our tree via FUSE.
if err := srv.Serve(filesys); err != nil {
return err
}