1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Package gomobile exports shims for gomobile use
- package gomobile
- import (
- "github.com/rclone/rclone/librclone/librclone"
- _ "github.com/rclone/rclone/backend/all" // import all backends
- _ "github.com/rclone/rclone/backend/usevfs" // import all backends which use the VFS
- _ "github.com/rclone/rclone/lib/plugin" // import plugins
- _ "golang.org/x/mobile/event/key" // make go.mod add this as a dependency
- )
- // RcloneInitialize initializes rclone as a library
- func RcloneInitialize() {
- librclone.Initialize()
- }
- // RcloneFinalize finalizes the library
- func RcloneFinalize() {
- librclone.Finalize()
- }
- // RcloneRPCResult is returned from RcloneRPC
- //
- // Output will be returned as a serialized JSON object
- // Status is a HTTP status return (200=OK anything else fail)
- type RcloneRPCResult struct {
- Output string
- Status int
- }
- // RcloneRPC has an interface optimised for gomobile, in particular
- // the function signature is valid under gobind rules.
- //
- // https://pkg.go.dev/golang.org/x/mobile/cmd/gobind#hdr-Type_restrictions
- func RcloneRPC(method string, input string) (result *RcloneRPCResult) { //nolint:deadcode
- output, status := librclone.RPC(method, input)
- return &RcloneRPCResult{
- Output: output,
- Status: status,
- }
- }
|