mirror of
https://github.com/rclone/rclone.git
synced 2025-06-21 12:33:52 +02:00
serve nfs: add serve rc interface
This commit is contained in:
parent
4d9a165e56
commit
0b7be6ffb9
@ -16,7 +16,9 @@ import (
|
|||||||
"github.com/rclone/rclone/cmd"
|
"github.com/rclone/rclone/cmd"
|
||||||
"github.com/rclone/rclone/cmd/serve"
|
"github.com/rclone/rclone/cmd/serve"
|
||||||
"github.com/rclone/rclone/fs"
|
"github.com/rclone/rclone/fs"
|
||||||
|
"github.com/rclone/rclone/fs/config/configstruct"
|
||||||
"github.com/rclone/rclone/fs/config/flags"
|
"github.com/rclone/rclone/fs/config/flags"
|
||||||
|
"github.com/rclone/rclone/fs/rc"
|
||||||
"github.com/rclone/rclone/vfs"
|
"github.com/rclone/rclone/vfs"
|
||||||
"github.com/rclone/rclone/vfs/vfscommon"
|
"github.com/rclone/rclone/vfs/vfscommon"
|
||||||
"github.com/rclone/rclone/vfs/vfsflags"
|
"github.com/rclone/rclone/vfs/vfsflags"
|
||||||
@ -85,6 +87,23 @@ func init() {
|
|||||||
vfsflags.AddFlags(Command.Flags())
|
vfsflags.AddFlags(Command.Flags())
|
||||||
AddFlags(Command.Flags())
|
AddFlags(Command.Flags())
|
||||||
serve.Command.AddCommand(Command)
|
serve.Command.AddCommand(Command)
|
||||||
|
serve.AddRc("nfs", func(ctx context.Context, f fs.Fs, in rc.Params) (serve.Handle, error) {
|
||||||
|
// Create VFS
|
||||||
|
var vfsOpt = vfscommon.Opt // set default opts
|
||||||
|
err := configstruct.SetAny(in, &vfsOpt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
VFS := vfs.New(f, &vfsOpt)
|
||||||
|
// Read opts
|
||||||
|
var opt = Opt // set default opts
|
||||||
|
err = configstruct.SetAny(in, &opt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
// Create server
|
||||||
|
return NewServer(ctx, VFS, &opt)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run the command
|
// Run the command
|
||||||
|
19
cmd/serve/nfs/nfs_test.go
Normal file
19
cmd/serve/nfs/nfs_test.go
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
//go:build unix
|
||||||
|
|
||||||
|
// The serving is tested in cmd/nfsmount - here we test anything else
|
||||||
|
package nfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
_ "github.com/rclone/rclone/backend/local"
|
||||||
|
"github.com/rclone/rclone/cmd/serve/servetest"
|
||||||
|
"github.com/rclone/rclone/fs/rc"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRc(t *testing.T) {
|
||||||
|
servetest.TestRc(t, rc.Params{
|
||||||
|
"type": "nfs",
|
||||||
|
"vfs_cache_mode": "off",
|
||||||
|
})
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user