Skip to content

Commit f5943ab

Browse files
Generate a correct yaml when properties are empty
1 parent 8f009bc commit f5943ab

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

commands/service_profile_init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func (s *arduinoCoreServerImpl) InitProfile(ctx context.Context, req *rpc.InitPr
4646
}
4747

4848
if !projectFilePath.Exist() {
49-
err := projectFilePath.WriteFile([]byte("profiles:\n"))
49+
err := projectFilePath.WriteFile([]byte("profiles: {}\n"))
5050
if err != nil {
5151
return nil, err
5252
}

internal/arduino/sketch/profiles.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,9 @@ type ProfileRequiredPlatforms []*ProfilePlatformReference
189189

190190
// AsYaml outputs the required platforms as Yaml
191191
func (p *ProfileRequiredPlatforms) AsYaml() string {
192+
if len(*p) == 0 {
193+
return " platforms: []\n"
194+
}
192195
res := " platforms:\n"
193196
for _, platform := range *p {
194197
res += platform.AsYaml()
@@ -202,6 +205,9 @@ type ProfileRequiredLibraries []*ProfileLibraryReference
202205

203206
// AsYaml outputs the required libraries as Yaml
204207
func (p *ProfileRequiredLibraries) AsYaml() string {
208+
if len(*p) == 0 {
209+
return " libraries: []\n"
210+
}
205211
res := " libraries:\n"
206212
for _, lib := range *p {
207213
res += lib.AsYaml()

internal/integrationtest/profiles/profiles_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ func initNoProfile(t *testing.T, env *integrationtest.Environment, cli *integrat
184184
require.FileExists(t, projectFile.String())
185185
fileContent, err := projectFile.ReadFile()
186186
require.NoError(t, err)
187-
require.Equal(t, "profiles:\n", string(fileContent))
187+
require.Equal(t, "profiles: {}\n", string(fileContent))
188188
}
189189

190190
func initWithCorrectFqbn(t *testing.T, env *integrationtest.Environment, cli *integrationtest.ArduinoCLI) {
@@ -195,7 +195,7 @@ func initWithCorrectFqbn(t *testing.T, env *integrationtest.Environment, cli *in
195195
require.FileExists(t, projectFile.String())
196196
fileContent, err := projectFile.ReadFile()
197197
require.NoError(t, err)
198-
require.Equal(t, "profiles:\n Uno:\n fqbn: arduino:avr:uno\n platforms:\n - platform: arduino:avr (1.8.6)\n libraries:\n\ndefault_profile: Uno\n", string(fileContent))
198+
require.Equal(t, "profiles:\n Uno:\n fqbn: arduino:avr:uno\n platforms:\n - platform: arduino:avr (1.8.6)\n libraries: []\n\ndefault_profile: Uno\n", string(fileContent))
199199
}
200200

201201
func initWithWrongFqbn(t *testing.T, env *integrationtest.Environment, cli *integrationtest.ArduinoCLI) {
@@ -315,7 +315,7 @@ func removeLibFromDefaultProfile(t *testing.T, env *integrationtest.Environment,
315315
require.NoError(t, err)
316316
fileContent, err := cli.SketchbookDir().Join("Simple", "sketch.yaml").ReadFile()
317317
require.NoError(t, err)
318-
require.Equal(t, "profiles:\n Uno:\n fqbn: arduino:avr:uno\n platforms:\n - platform: arduino:avr (1.8.6)\n libraries:\n\ndefault_profile: Uno\n", string(fileContent))
318+
require.Equal(t, "profiles:\n Uno:\n fqbn: arduino:avr:uno\n platforms:\n - platform: arduino:avr (1.8.6)\n libraries: []\n\ndefault_profile: Uno\n", string(fileContent))
319319
}
320320

321321
func addInexistentLibToDefaultProfile(t *testing.T, env *integrationtest.Environment, cli *integrationtest.ArduinoCLI) {

0 commit comments

Comments
 (0)