Skip to content

Commit b9a88e4

Browse files
committed
Fixed 'config dump --format yaml' regression
1 parent f586a10 commit b9a88e4

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

Diff for: internal/cli/config/dump.go

+3-8
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ func initDumpCommand(srv rpc.ArduinoCoreServiceServer) *cobra.Command {
3535
logrus.Info("Executing `arduino-cli config dump`")
3636
res := &rawResult{}
3737
switch feedback.GetFormat() {
38-
case feedback.JSON, feedback.MinifiedJSON:
38+
case feedback.JSON, feedback.MinifiedJSON, feedback.YAML:
3939
resp, err := srv.ConfigurationSave(cmd.Context(), &rpc.ConfigurationSaveRequest{SettingsFormat: "json"})
4040
if err != nil {
4141
logrus.Fatalf("Error creating configuration: %v", err)
4242
}
4343
res.rawJSON = []byte(resp.GetEncodedSettings())
44-
case feedback.YAML, feedback.Text:
44+
case feedback.Text:
4545
resp, err := srv.ConfigurationSave(cmd.Context(), &rpc.ConfigurationSaveRequest{SettingsFormat: "yaml"})
4646
if err != nil {
4747
logrus.Fatalf("Error creating configuration: %v", err)
@@ -66,13 +66,8 @@ func (r *rawResult) MarshalJSON() ([]byte, error) {
6666
return r.rawJSON, nil
6767
}
6868

69-
func (r *rawResult) MarshalYAML() (interface{}, error) {
70-
// it is already encoded in rawYAML field
71-
return r.rawYAML, nil
72-
}
73-
7469
type dumpResult struct {
75-
Config *rawResult `json:"config" yaml:"config"`
70+
Config *rawResult `json:"config"`
7671
}
7772

7873
func (dr dumpResult) Data() interface{} {

Diff for: internal/integrationtest/config/config_test.go

+31
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,21 @@ func TestDump(t *testing.T) {
207207
require.NoError(t, err)
208208
requirejson.Query(t, stdout, ".config | .board_manager | .additional_urls", "[]")
209209

210+
stdout, _, err = cli.Run("config", "dump", "--config-file", configFile.String(), "--format", "yaml")
211+
require.NoError(t, err)
212+
require.NoError(t, err)
213+
require.YAMLEq(t, string(stdout), `
214+
config:
215+
board_manager:
216+
additional_urls: []
217+
directories:
218+
data: `+cli.DataDir().String()+`
219+
downloads: `+cli.DownloadDir().String()+`
220+
user: `+cli.SketchbookDir().String()+`
221+
build_cache:
222+
compilations_before_purge: 0
223+
`)
224+
210225
stdout, _, err = cli.Run("config", "init", "--additional-urls", "https://example.com")
211226
require.NoError(t, err)
212227
configFile = cli.DataDir().Join("arduino-cli.yaml")
@@ -216,6 +231,22 @@ func TestDump(t *testing.T) {
216231
stdout, _, err = cli.Run("config", "dump", "--format", "json")
217232
require.NoError(t, err)
218233
requirejson.Query(t, stdout, ".config | .board_manager | .additional_urls", "[\"https://example.com\"]")
234+
235+
stdout, _, err = cli.Run("config", "dump", "--config-file", configFile.String(), "--format", "yaml")
236+
require.NoError(t, err)
237+
require.NoError(t, err)
238+
require.YAMLEq(t, string(stdout), `
239+
config:
240+
board_manager:
241+
additional_urls:
242+
- https://example.com
243+
directories:
244+
data: `+cli.DataDir().String()+`
245+
downloads: `+cli.DownloadDir().String()+`
246+
user: `+cli.SketchbookDir().String()+`
247+
build_cache:
248+
compilations_before_purge: 0
249+
`)
219250
}
220251

221252
func TestDumpWithConfigFileFlag(t *testing.T) {

0 commit comments

Comments
 (0)