config: expand docs on config protocol #3455

This commit is contained in:
Nick Craig-Wood 2021-05-17 10:28:56 +01:00
parent 6555d3eb33
commit 82f1f7d2c4

View File

@ -134,6 +134,7 @@ it.
This will look something like (some irrelevant detail removed): This will look something like (some irrelevant detail removed):
|||
{ {
"State": "*oauth-islocal,teamdrive,,", "State": "*oauth-islocal,teamdrive,,",
"Option": { "Option": {
@ -152,15 +153,29 @@ This will look something like (some irrelevant detail removed):
], ],
"Required": false, "Required": false,
"IsPassword": false, "IsPassword": false,
"Type": "bool" "Type": "bool",
"Exclusive": true,
}, },
"Error": "", "Error": "",
} }
|||
The format of |Option| is the same as returned by |rclone config The format of |Option| is the same as returned by |rclone config
providers|. The question should be asked to the user and returned to providers|. The question should be asked to the user and returned to
rclone as the |--result| option along with the |--state| parameter. rclone as the |--result| option along with the |--state| parameter.
The keys of |Option| are used as follows:
- |Name| - name of variable - show to user
- |Help| - help text. Hard wrapped at 80 chars. Any URLs should be clicky.
- |Default| - default value - return this if the user just wants the default.
- |Examples| - the user should be able to choose one of these
- |Required| - the value should be non-empty
- |IsPassword| - the value is a password and should be edited as such
- |Type| - type of value, eg |bool|, |string|, |int| and others
- |Exclusive| - if set no free-form entry allowed only the |Examples|
- Irrelevant keys |Provider|, |ShortOpt|, |Hide|, |NoPrefix|, |Advanced|
If |Error| is set then it should be shown to the user at the same If |Error| is set then it should be shown to the user at the same
time as the question. time as the question.
@ -176,6 +191,9 @@ with |State| as empty string.
If |--all| is passed then rclone will ask all the config questions, If |--all| is passed then rclone will ask all the config questions,
not just the post config questions. Any parameters are used as not just the post config questions. Any parameters are used as
defaults for questions as usual. defaults for questions as usual.
Note that |bin/config.py| in the rclone source implements this protocol
as a readable demonstration.
`, "|", "`") `, "|", "`")
var configCreateCommand = &cobra.Command{ var configCreateCommand = &cobra.Command{
Use: "create `name` `type` [`key` `value`]*", Use: "create `name` `type` [`key` `value`]*",