Skip to content

Commit 51594ae

Browse files
refactor ContainerBuildOptions in a function
1 parent 7c8e73c commit 51594ae

File tree

2 files changed

+50
-24
lines changed

2 files changed

+50
-24
lines changed

Diff for: legacy/builder/builder.go

+25-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func (s *Builder) Run(ctx *types.Context) error {
4141

4242
var _err, mainErr error
4343
commands := []types.Command{
44-
&ContainerBuildOptions{},
44+
containerBuildOptions(ctx),
4545

4646
types.BareCommand(func(ctx *types.Context) error {
4747
return recipeByPrefixSuffixRunner(ctx, "recipe.hooks.prebuild", ".pattern", false)
@@ -286,7 +286,7 @@ func (s *Preprocess) Run(ctx *types.Context) error {
286286

287287
var _err error
288288
commands := []types.Command{
289-
&ContainerBuildOptions{},
289+
containerBuildOptions(ctx),
290290

291291
types.BareCommand(func(ctx *types.Context) error {
292292
return recipeByPrefixSuffixRunner(ctx, "recipe.hooks.prebuild", ".pattern", false)
@@ -383,3 +383,26 @@ func recipeByPrefixSuffixRunner(ctx *types.Context, prefix, suffix string, skipI
383383
func(msg string) { ctx.Info(msg) },
384384
)
385385
}
386+
387+
func containerBuildOptions(ctx *types.Context) types.BareCommand {
388+
return types.BareCommand(func(ctx *types.Context) error {
389+
// TODO here we can pass only the properties we're reading from the
390+
// ctx.BuildProperties
391+
buildOptionsJSON, buildOptionsJSONPrevious, infoMessage, err := ContainerBuildOptions(
392+
ctx.HardwareDirs, ctx.BuiltInToolsDirs, ctx.OtherLibrariesDirs,
393+
ctx.BuiltInLibrariesDirs, ctx.BuildPath, ctx.Sketch, ctx.CustomBuildProperties,
394+
ctx.FQBN.String(), ctx.Clean, ctx.BuildProperties,
395+
)
396+
if infoMessage != "" {
397+
ctx.Info(infoMessage)
398+
}
399+
if err != nil {
400+
return err
401+
}
402+
403+
ctx.BuildOptionsJson = buildOptionsJSON
404+
ctx.BuildOptionsJsonPrevious = buildOptionsJSONPrevious
405+
406+
return nil
407+
})
408+
}

Diff for: legacy/builder/container_build_options.go

+25-22
Original file line numberDiff line numberDiff line change
@@ -16,42 +16,45 @@
1616
package builder
1717

1818
import (
19-
"github.com/arduino/arduino-cli/legacy/builder/types"
19+
"github.com/arduino/arduino-cli/arduino/sketch"
20+
"github.com/arduino/go-paths-helper"
21+
properties "github.com/arduino/go-properties-orderedmap"
2022
"github.com/pkg/errors"
2123
)
2224

23-
type ContainerBuildOptions struct{}
24-
25-
func (s *ContainerBuildOptions) Run(ctx *types.Context) error {
25+
func ContainerBuildOptions(
26+
hardwareDirs, builtInToolsDirs, otherLibrariesDirs paths.PathList,
27+
builtInLibrariesDirs, buildPath *paths.Path,
28+
sketch *sketch.Sketch,
29+
customBuildProperties []string,
30+
fqbn string,
31+
clean bool,
32+
buildProperties *properties.Map,
33+
) (string, string, string, error) {
2634
buildOptionsJSON, err := CreateBuildOptionsMap(
27-
ctx.HardwareDirs, ctx.BuiltInToolsDirs, ctx.OtherLibrariesDirs,
28-
ctx.BuiltInLibrariesDirs, ctx.Sketch, ctx.CustomBuildProperties,
29-
ctx.FQBN.String(), ctx.BuildProperties.Get("compiler.optimization_flags"),
35+
hardwareDirs, builtInToolsDirs, otherLibrariesDirs,
36+
builtInLibrariesDirs, sketch, customBuildProperties,
37+
fqbn, buildProperties.Get("compiler.optimization_flags"),
3038
)
3139
if err != nil {
32-
return errors.WithStack(err)
40+
return "", "", "", errors.WithStack(err)
3341
}
34-
ctx.BuildOptionsJson = buildOptionsJSON
3542

36-
buildOptionsJsonPrevious, err := LoadPreviousBuildOptionsMap(ctx.BuildPath)
43+
buildOptionsJSONPrevious, err := LoadPreviousBuildOptionsMap(buildPath)
3744
if err != nil {
38-
return errors.WithStack(err)
45+
return "", "", "", errors.WithStack(err)
3946
}
40-
ctx.BuildOptionsJsonPrevious = buildOptionsJsonPrevious
4147

4248
infoOut, err := WipeoutBuildPathIfBuildOptionsChanged(
43-
ctx.Clean,
44-
ctx.BuildPath,
45-
ctx.BuildOptionsJson,
46-
ctx.BuildOptionsJsonPrevious,
47-
ctx.BuildProperties,
49+
clean,
50+
buildPath,
51+
buildOptionsJSON,
52+
buildOptionsJSONPrevious,
53+
buildProperties,
4854
)
4955
if err != nil {
50-
return errors.WithStack(err)
51-
}
52-
if infoOut != "" {
53-
ctx.Info(infoOut)
56+
return "", "", "", errors.WithStack(err)
5457
}
5558

56-
return StoreBuildOptionsMap(ctx.BuildPath, ctx.BuildOptionsJson)
59+
return buildOptionsJSON, buildOptionsJSONPrevious, infoOut, StoreBuildOptionsMap(buildPath, buildOptionsJSON)
5760
}

0 commit comments

Comments
 (0)