Skip to content

Commit f61c1bc

Browse files
authored
[skip-changelog] Simplified getUserFields method (arduino#1412)
1 parent 9cc4eea commit f61c1bc

File tree

4 files changed

+53
-77
lines changed

4 files changed

+53
-77
lines changed

commands/upload/upload.go

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"fmt"
2121
"io"
2222
"path/filepath"
23-
"strconv"
2423
"strings"
2524

2625
"github.com/arduino/arduino-cli/arduino/cores"
@@ -67,13 +66,8 @@ func SupportedUserFields(ctx context.Context, req *rpc.SupportedUserFieldsReques
6766
return nil, err
6867
}
6968

70-
userFields, err := getUserFields(toolID, platformRelease)
71-
if err != nil {
72-
return nil, err
73-
}
74-
7569
return &rpc.SupportedUserFieldsResponse{
76-
UserFields: userFields,
70+
UserFields: getUserFields(toolID, platformRelease),
7771
}, nil
7872
}
7973

@@ -95,7 +89,7 @@ func getToolID(props *properties.Map, action, protocol string) (string, error) {
9589

9690
// getUserFields return all user fields supported by the tools specified.
9791
// Returns error only in case the secret property is not a valid boolean.
98-
func getUserFields(toolID string, platformRelease *cores.PlatformRelease) ([]*rpc.UserField, error) {
92+
func getUserFields(toolID string, platformRelease *cores.PlatformRelease) []*rpc.UserField {
9993
userFields := []*rpc.UserField{}
10094
fields := platformRelease.Properties.SubTree(fmt.Sprintf("tools.%s.upload.field", toolID))
10195
keys := fields.FirstLevelKeys()
@@ -105,15 +99,7 @@ func getUserFields(toolID string, platformRelease *cores.PlatformRelease) ([]*rp
10599
if len(value) > 50 {
106100
value = fmt.Sprintf("%s…", value[:49])
107101
}
108-
secretProp := fmt.Sprintf("%s.secret", key)
109-
secret, ok := fields.GetOk(secretProp)
110-
if !ok {
111-
secret = "false"
112-
}
113-
isSecret, err := strconv.ParseBool(secret)
114-
if err != nil {
115-
return nil, fmt.Errorf(tr("parsing %s, property is not a boolean"), fmt.Sprintf(`"tools.%s.upload.field.%s.secret"`, toolID, key))
116-
}
102+
isSecret := fields.GetBoolean(fmt.Sprintf("%s.secret", key))
117103
userFields = append(userFields, &rpc.UserField{
118104
ToolId: toolID,
119105
Name: key,
@@ -122,7 +108,7 @@ func getUserFields(toolID string, platformRelease *cores.PlatformRelease) ([]*rp
122108
})
123109
}
124110

125-
return userFields, nil
111+
return userFields
126112
}
127113

128114
// Upload FIXMEDOC

commands/upload/upload_test.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,7 @@ tools.arduino_ota.upload.field.password.secret=true`))
282282

283283
platformRelease.Properties = props
284284

285-
userFields, err := getUserFields("avrdude", platformRelease)
286-
require.NoError(t, err)
285+
userFields := getUserFields("avrdude", platformRelease)
287286
require.Len(t, userFields, 2)
288287
require.Equal(t, userFields[0].ToolId, "avrdude")
289288
require.Equal(t, userFields[0].Name, "username")
@@ -300,17 +299,12 @@ tools.arduino_ota.upload.field.password.secret=THIS_IS_NOT_A_BOOLEAN`))
300299
require.NoError(t, err)
301300
platformRelease.Properties = props
302301

303-
userFields, err = getUserFields("arduino_ota", platformRelease)
304-
require.Nil(t, userFields)
305-
require.EqualError(t, err, `parsing "tools.arduino_ota.upload.field.password.secret", property is not a boolean`)
306-
307302
props, err = properties.LoadFromBytes([]byte(`
308303
tools.arduino_ota.upload.field.some_field=This is a really long label that ideally must never be set by any platform
309304
`))
310305
require.NoError(t, err)
311306
platformRelease.Properties = props
312-
userFields, err = getUserFields("arduino_ota", platformRelease)
313-
require.NoError(t, err)
307+
userFields = getUserFields("arduino_ota", platformRelease)
314308
require.Len(t, userFields, 1)
315309
require.Equal(t, userFields[0].ToolId, "arduino_ota")
316310
require.Equal(t, userFields[0].Name, "some_field")

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy