mirror of
https://github.com/rclone/rclone.git
synced 2025-04-19 18:31:10 +08:00
rc: In options/info make FieldName contain a "." if it should be nested
Before this would have Output "FieldName": "ListenAddr" where it actually needs to be set in a sub object "HTTP". After this fix it outputs "FieldName": "HTTP.ListenAddr" to indicate "ListenAddr" needs to be set in the object "HTTP".
This commit is contained in:
parent
b1456835d8
commit
cf571ad661
@ -432,7 +432,7 @@ format. Each block describes a single option.
|
||||
| Field | Type | Optional | Description |
|
||||
|-------|------|----------|-------------|
|
||||
| Name | string | N | name of the option in snake_case |
|
||||
| FieldName | string | N | name of the field used in the rc - if blank use Name |
|
||||
| FieldName | string | N | name of the field used in the rc - if blank use Name. May contain "." for nested fields. |
|
||||
| Help | string | N | help, started with a single sentence on a single line |
|
||||
| Groups | string | Y | groups this option belongs to - comma separated string for options classification |
|
||||
| Provider | string | Y | set to filter on provider |
|
||||
|
@ -139,6 +139,7 @@ func Items(opt any) (items []Item, err error) {
|
||||
if hasTag {
|
||||
newItem.Name = configName + "_" + newItem.Name
|
||||
}
|
||||
newItem.Field = fieldName + "." + newItem.Field
|
||||
items = append(items, newItem)
|
||||
}
|
||||
} else {
|
||||
|
@ -100,17 +100,17 @@ func TestItemsNested(t *testing.T) {
|
||||
got, err := configstruct.Items(&in)
|
||||
require.NoError(t, err)
|
||||
want := []configstruct.Item{
|
||||
{Name: "a", Field: "A", Value: string("1")},
|
||||
{Name: "b", Field: "B", Value: string("2")},
|
||||
{Name: "sub_a", Field: "A", Value: string("3")},
|
||||
{Name: "sub_b", Field: "B", Value: string("4")},
|
||||
{Name: "spud_pie", Field: "PotatoPie", Value: string("yum")},
|
||||
{Name: "bean_stew", Field: "BeanStew", Value: true},
|
||||
{Name: "raisin_roll", Field: "RaisinRoll", Value: int(42)},
|
||||
{Name: "sausage_on_stick", Field: "SausageOnStick", Value: int64(101)},
|
||||
{Name: "forbidden_fruit", Field: "ForbiddenFruit", Value: uint(6)},
|
||||
{Name: "cooking_time", Field: "CookingTime", Value: fs.Duration(42 * time.Second)},
|
||||
{Name: "total_weight", Field: "TotalWeight", Value: fs.SizeSuffix(17 << 20)},
|
||||
{Name: "a", Field: "Conf.A", Value: string("1")},
|
||||
{Name: "b", Field: "Conf.B", Value: string("2")},
|
||||
{Name: "sub_a", Field: "Sub1.A", Value: string("3")},
|
||||
{Name: "sub_b", Field: "Sub1.B", Value: string("4")},
|
||||
{Name: "spud_pie", Field: "Sub2.PotatoPie", Value: string("yum")},
|
||||
{Name: "bean_stew", Field: "Sub2.BeanStew", Value: true},
|
||||
{Name: "raisin_roll", Field: "Sub2.RaisinRoll", Value: int(42)},
|
||||
{Name: "sausage_on_stick", Field: "Sub2.SausageOnStick", Value: int64(101)},
|
||||
{Name: "forbidden_fruit", Field: "Sub2.ForbiddenFruit", Value: uint(6)},
|
||||
{Name: "cooking_time", Field: "Sub2.CookingTime", Value: fs.Duration(42 * time.Second)},
|
||||
{Name: "total_weight", Field: "Sub2.TotalWeight", Value: fs.SizeSuffix(17 << 20)},
|
||||
{Name: "c", Field: "C", Value: string("normal")},
|
||||
{Name: "d", Field: "D", Value: fs.Tristate{Value: true, Valid: true}},
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user