mirror of
https://github.com/rclone/rclone.git
synced 2025-12-12 06:24:14 +01:00
rc: add config/unlock to unlock the config file
This commit is contained in:
@@ -9,6 +9,37 @@ import (
|
|||||||
"github.com/rclone/rclone/fs/rc"
|
"github.com/rclone/rclone/fs/rc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
rc.Add(rc.Call{
|
||||||
|
Path: "config/unlock",
|
||||||
|
Fn: rcConfigPassword,
|
||||||
|
Title: "Unlock the config file.",
|
||||||
|
AuthRequired: true,
|
||||||
|
Help: `
|
||||||
|
Unlocks the config file if it is locked.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
- 'config_password' - password to unlock the config file
|
||||||
|
|
||||||
|
A good idea is to disable AskPassword before making this call
|
||||||
|
`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unlock the config file
|
||||||
|
// A good idea is to disable AskPassword before making this call
|
||||||
|
func rcConfigPassword(ctx context.Context, in rc.Params) (out rc.Params, err error) {
|
||||||
|
configPass, err := in.GetString("config_password")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if SetConfigPassword(configPass) != nil {
|
||||||
|
return nil, errors.New("failed to set config password")
|
||||||
|
}
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rc.Add(rc.Call{
|
rc.Add(rc.Call{
|
||||||
Path: "config/dump",
|
Path: "config/dump",
|
||||||
|
|||||||
@@ -188,3 +188,17 @@ func TestRcPaths(t *testing.T) {
|
|||||||
assert.Equal(t, config.GetCacheDir(), out["cache"])
|
assert.Equal(t, config.GetCacheDir(), out["cache"])
|
||||||
assert.Equal(t, os.TempDir(), out["temp"])
|
assert.Equal(t, os.TempDir(), out["temp"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRcConfigUnlock(t *testing.T) {
|
||||||
|
call := rc.Calls.Get("config/unlock")
|
||||||
|
assert.NotNil(t, call)
|
||||||
|
in := rc.Params{
|
||||||
|
"config_password": "test",
|
||||||
|
}
|
||||||
|
out, err := call.Fn(context.Background(), in)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Nil(t, out)
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user