Skip to content

Commit

Permalink
crypt: change backend encode/decode to output a plain list
Browse files Browse the repository at this point in the history
This commit changes the output of the rclone backend encode crypt: and
decode commands to output a plain list of decoded or encoded file
names.

This makes the command much more useful for command line scripting.
  • Loading branch information
ncw committed May 13, 2020
1 parent 995cd0d commit 52b7337
Showing 1 changed file with 17 additions and 14 deletions.
31 changes: 17 additions & 14 deletions backend/crypt/crypt.go
Original file line number Diff line number Diff line change
Expand Up @@ -705,24 +705,27 @@ var commandHelp = []fs.CommandHelp{
{
Name: "encode",
Short: "Encode the given filename(s)",
Long: `Encode the given filename(s)
Long: `This encodes the filenames given as arguments returning a list of
strings of the encoded results.
Usage Example:
Usage Example:
rclone backend encode crypt: file1 [file2...]
rclone rc backend/command command=encode fs=crypt: file1 [file2...]
`,
rclone backend encode crypt: file1 [file2...]
rclone rc backend/command command=encode fs=crypt: file1 [file2...]
`,
},
{
Name: "decode",
Short: "Decode the given filename(s)",
Long: `Decode the given filename(s)
Long: `This decodes the filenames given as arguments returning a list of
strings of the decoded results. It will return an error if any of the
inputs are invalid.
Usage Example:
Usage Example:
rclone backend decode crypt: encryptedfile1 [encryptedfile2...]
rclone rc backend/command command=decode fs=crypt: encryptedfile1 [encryptedfile2...]
`,
rclone backend decode crypt: encryptedfile1 [encryptedfile2...]
rclone rc backend/command command=decode fs=crypt: encryptedfile1 [encryptedfile2...]
`,
},
}

Expand All @@ -738,20 +741,20 @@ var commandHelp = []fs.CommandHelp{
func (f *Fs) Command(ctx context.Context, name string, arg []string, opt map[string]string) (out interface{}, err error) {
switch name {
case "decode":
out := make(map[string]string)
out := make([]string, 0, len(arg))
for _, encryptedFileName := range arg {
fileName, err := f.DecryptFileName(encryptedFileName)
if err != nil {
return out, errors.Wrap(err, fmt.Sprintf("Failed to decrypt : %s", encryptedFileName))
}
out[encryptedFileName] = fileName
out = append(out, fileName)
}
return out, nil
case "encode":
out := make(map[string]string)
out := make([]string, 0, len(arg))
for _, fileName := range arg {
encryptedFileName := f.EncryptFileName(fileName)
out[fileName] = encryptedFileName
out = append(out, encryptedFileName)
}
return out, nil
default:
Expand Down

0 comments on commit 52b7337

Please sign in to comment.