Make _config and _filter consistant with other json string inputs in remote calls

serve/start allows using the snake_case options returned from options/info

options/info also returns snake_case options for "main" and "filter" options blocks (_config and _filter respectively)

I propose allowing for _filter='{"metadata_exclude": ["foo"]}' and _config='{"size_only":true}'

what is returned from options/local would still be PascalCase go struct, but it allows sending snake_case Name fields already defined in rclone. This would not touch other camelCase options like createEmptySrcDirs or srcFs - these stay the same - only options returned from options/info would be allowed to be submitted via snake_case

The motivation is:

  • alignment with other calls
  • it's more friendly for software which interacts with rclone and allows config (PascalCase is not common for configuration in software)
  • fully backwards compatible
  • I have seen other threads where the intuitive thing is snake_case in these _config style inputs, confusing users

I have this working locally

rclone on  master [!] via 🐹 v1.26.4-X:nodwarf5
❯ rclone --config /dev/null rc --loopback options/local _filter='{"metadata_exclude": ["foo"]}' | grep -i excluderule -A 1
                "ExcludeRule": [],
                "FilesFrom": [],
--
                        "ExcludeRule": [
                                "foo"

rclone on  master [!] via 🐹 v1.26.4-X:nodwarf5
❯ rclone --config /dev/null rc --loopback options/local _config='{"size_only":true}' | grep -i sizeonly
                "SizeOnly": true,

If accepted, I will be very willing to file an issue and open a PR

rclone on  master [!] via 🐹 v1.26.4-X:nodwarf5
❯ git diff --stat
 docs/content/rc.md                          | 24 +++++++++++++++++++++++-
 fs/config/configstruct/configstruct.go      | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 fs/config/configstruct/configstruct_test.go | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/rc/config.go                             | 18 +++++++++++++++---
 fs/rc/config_test.go                        | 37 +++++++++++++++++++++++++++++++++++++
 fs/rc/jobs/job.go                           | 40 ++++++++++++++++++++++++++++++++--------
 fs/rc/jobs/job_test.go                      | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 313 insertions(+), 12 deletions(-)

Thank you for this wonderful software!

That is indeed the plan. The serve RC was the prototype for this. It makes the RC much more like the command line which will help usage.

There is a pr for this already

Which is in the review queue.

1 Like

Wow, I missed that! I have subscribed to the PR so I know when it merges.

Thank you :slight_smile:

1 Like