1
mirror of https://github.com/rclone/rclone synced 2024-11-17 17:30:37 +01:00

rc: implement core/obscure

This commit is contained in:
Nick Craig-Wood 2018-11-04 16:30:56 +00:00
parent 1916410316
commit bc17ca7ed9
2 changed files with 45 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import (
"runtime" "runtime"
"github.com/ncw/rclone/fs" "github.com/ncw/rclone/fs"
"github.com/ncw/rclone/fs/config/obscure"
"github.com/ncw/rclone/fs/version" "github.com/ncw/rclone/fs/version"
"github.com/pkg/errors" "github.com/pkg/errors"
) )
@ -191,3 +192,34 @@ func rcVersion(in Params) (out Params, err error) {
} }
return out, nil return out, nil
} }
func init() {
Add(Call{
Path: "core/obscure",
Fn: rcObscure,
Title: "Obscures a string passed in.",
Help: `
Pass a clear string and rclone will obscure it for the config file:
- clear - string
Returns
- obscured - string
`,
})
}
// Return obscured string
func rcObscure(in Params) (out Params, err error) {
clear, err := in.GetString("clear")
if err != nil {
return nil, err
}
obscured, err := obscure.Obscure(clear)
if err != nil {
return nil, err
}
out = Params{
"obscured": obscured,
}
return out, nil
}

View File

@ -5,6 +5,7 @@ import (
"testing" "testing"
"github.com/ncw/rclone/fs" "github.com/ncw/rclone/fs"
"github.com/ncw/rclone/fs/config/obscure"
"github.com/ncw/rclone/fs/version" "github.com/ncw/rclone/fs/version"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
@ -93,3 +94,15 @@ func TestCoreVersion(t *testing.T) {
v := out["decomposed"].(version.Version) v := out["decomposed"].(version.Version)
assert.True(t, len(v) >= 2) assert.True(t, len(v) >= 2)
} }
func TestCoreObscure(t *testing.T) {
call := Calls.Get("core/obscure")
assert.NotNil(t, call)
in := Params{
"clear": "potato",
}
out, err := call.Fn(in)
require.NoError(t, err)
require.NotNil(t, out)
assert.Equal(t, in["clear"], obscure.MustReveal(out["obscured"].(string)))
}