Documentation ¶
Overview ¶
Package rc implements a remote control server and registry for rclone
To register your internal calls, call rc.Add(path, function). Your function should take ane return a Param. It can also return an error. Use rc.NewError to wrap an existing error along with an http response type if another response other than 500 internal error is required on error.
Index ¶
- Variables
- func Add(call Call)
- func AddOption(name string, option interface{})
- func AddOptionReload(name string, option interface{}, reload func() error)
- func GetCachedFs(fsString string) (f fs.Fs, err error)
- func GetFs(in Params) (f fs.Fs, err error)
- func GetFsAndRemote(in Params) (f fs.Fs, remote string, err error)
- func GetFsAndRemoteNamed(in Params, fsName, remoteName string) (f fs.Fs, remote string, err error)
- func GetFsNamed(in Params, fsName string) (f fs.Fs, err error)
- func IsErrParamInvalid(err error) bool
- func IsErrParamNotFound(err error) bool
- func NotErrParamNotFound(err error) bool
- func PutCachedFs(fsString string, f fs.Fs)
- func Reshape(out interface{}, in interface{}) error
- func WriteJSON(w io.Writer, out Params) error
- type Call
- type ErrParamInvalid
- type ErrParamNotFound
- type Func
- type Job
- type Jobs
- type Options
- type Params
- func (p Params) Get(key string) (interface{}, error)
- func (p Params) GetBool(key string) (bool, error)
- func (p Params) GetFloat64(key string) (float64, error)
- func (p Params) GetInt64(key string) (int64, error)
- func (p Params) GetString(key string) (string, error)
- func (p Params) GetStruct(key string, out interface{}) error
- type Registry
Constants ¶
This section is empty.
Variables ¶
var Calls = NewRegistry()
Calls is the global registry of Call objects
var DefaultOpt = Options{ HTTPOptions: httplib.DefaultOpt, Enabled: false, }
DefaultOpt is the default values used for Options
Functions ¶
func AddOptionReload ¶
AddOptionReload adds an option set with a reload function to be called when options are changed
func GetCachedFs ¶
GetCachedFs gets a fs.Fs named fsString either from the cache or creates it afresh
func GetFsAndRemote ¶
GetFsAndRemote gets the `fs` parameter from in, makes a remote or fetches it from the cache then gets the `remote` parameter from in too.
func GetFsAndRemoteNamed ¶
GetFsAndRemoteNamed gets the fsName parameter from in, makes a remote or fetches it from the cache then gets the remoteName parameter from in too.
func GetFsNamed ¶
GetFsNamed gets a fs.Fs named fsName either from the cache or creates it afresh
func IsErrParamInvalid ¶
IsErrParamInvalid returns whether err is ErrParamInvalid
func IsErrParamNotFound ¶
IsErrParamNotFound returns whether err is ErrParamNotFound
func NotErrParamNotFound ¶
NotErrParamNotFound returns true if err != nil and !IsErrParamNotFound(err)
This is for checking error returns of the Get* functions to ignore error not found returns and take the default value.
func PutCachedFs ¶
PutCachedFs puts an fs.Fs named fsString into the cache
Types ¶
type Call ¶
type Call struct { Path string // path to activate this RC Fn Func `json:"-"` // function to call Title string // help for the function AuthRequired bool // if set then this call requires authorisation to be set Help string // multi-line markdown formatted help }
Call defines info about a remote control function and is used in the Add function to create new entry points.
type ErrParamInvalid ¶
type ErrParamInvalid struct {
// contains filtered or unexported fields
}
ErrParamInvalid - this is returned from the Get* functions if the parameter is invalid.
Returning an error of this type from an rc.Func will cause the http method to return http.StatusBadRequest
type ErrParamNotFound ¶
type ErrParamNotFound string
ErrParamNotFound - this is returned from the Get* functions if the parameter isn't found along with a zero value of the requested item.
Returning an error of this type from an rc.Func will cause the http method to return http.StatusBadRequest
func (ErrParamNotFound) Error ¶
func (e ErrParamNotFound) Error() string
Error turns this error into a string
type Job ¶
type Job struct { ID int64 `json:"id"` StartTime time.Time `json:"startTime"` EndTime time.Time `json:"endTime"` Error string `json:"error"` Finished bool `json:"finished"` Success bool `json:"success"` Duration float64 `json:"duration"` Output Params `json:"output"` // contains filtered or unexported fields }
Job describes a asynchronous task started via the rc package
type Jobs ¶
type Jobs struct {
// contains filtered or unexported fields
}
Jobs describes a collection of running tasks
func (*Jobs) Expire ¶
func (jobs *Jobs) Expire()
Expire expires any jobs that haven't been collected
type Options ¶
type Options struct { HTTPOptions httplib.Options Enabled bool // set to enable the server Serve bool // set to serve files from remotes Files string // set to enable serving files locally NoAuth bool // set to disable auth checks on AuthRequired methods }
Options contains options for the remote control server
type Params ¶
type Params map[string]interface{}
Params is the input and output type for the Func
func (Params) Get ¶
Get gets a parameter from the input
If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be nil.
func (Params) GetBool ¶
GetBool gets a boolean parameter from the input
If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be false.
func (Params) GetFloat64 ¶
GetFloat64 gets a float64 parameter from the input
If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be 0.
func (Params) GetInt64 ¶
GetInt64 gets a int64 parameter from the input
If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be 0.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry holds the list of all the registered remote control functions
func NewRegistry ¶
func NewRegistry() *Registry
NewRegistry makes a new registry for remote control functions
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package rcflags implements command line flags to set up the remote control
|
Package rcflags implements command line flags to set up the remote control |
Package rcserver implements the HTTP endpoint to serve the remote control
|
Package rcserver implements the HTTP endpoint to serve the remote control |