diff --git a/legacy/builder/add_additional_entries_to_context.go b/legacy/builder/add_additional_entries_to_context.go index 9e9fdd80669..adcd7e2d5e3 100644 --- a/legacy/builder/add_additional_entries_to_context.go +++ b/legacy/builder/add_additional_entries_to_context.go @@ -18,37 +18,34 @@ package builder import ( "github.com/arduino/arduino-cli/legacy/builder/constants" "github.com/arduino/arduino-cli/legacy/builder/types" + "github.com/arduino/go-paths-helper" "github.com/pkg/errors" ) -type AddAdditionalEntriesToContext struct{} - -func (*AddAdditionalEntriesToContext) Run(ctx *types.Context) error { - if ctx.BuildPath != nil { - buildPath := ctx.BuildPath - sketchBuildPath, err := buildPath.Join(constants.FOLDER_SKETCH).Abs() +func AddAdditionalEntriesToContext(buildPath *paths.Path, warningLevel string) (sketchBuildPath *paths.Path, librariesBuildPath *paths.Path, coreBuildPath *paths.Path, warningsLevel string, librariesResolutionResults map[string]types.LibraryResolutionResult, err error) { + if buildPath != nil { + buildPath := buildPath + sketchBuildPath, err = buildPath.Join(constants.FOLDER_SKETCH).Abs() if err != nil { - return errors.WithStack(err) + err = errors.WithStack(err) + return } - librariesBuildPath, err := buildPath.Join(constants.FOLDER_LIBRARIES).Abs() + librariesBuildPath, err = buildPath.Join(constants.FOLDER_LIBRARIES).Abs() if err != nil { - return errors.WithStack(err) + err = errors.WithStack(err) + return } - coreBuildPath, err := buildPath.Join(constants.FOLDER_CORE).Abs() + coreBuildPath, err = buildPath.Join(constants.FOLDER_CORE).Abs() if err != nil { - return errors.WithStack(err) + err = errors.WithStack(err) + return } - - ctx.SketchBuildPath = sketchBuildPath - ctx.LibrariesBuildPath = librariesBuildPath - ctx.CoreBuildPath = coreBuildPath } - if ctx.WarningsLevel == "" { - ctx.WarningsLevel = DEFAULT_WARNINGS_LEVEL + if warningLevel == "" { + warningsLevel = DEFAULT_WARNINGS_LEVEL } - ctx.LibrariesResolutionResults = map[string]types.LibraryResolutionResult{} - - return nil + librariesResolutionResults = map[string]types.LibraryResolutionResult{} + return } diff --git a/legacy/builder/container_setup.go b/legacy/builder/container_setup.go index 3a00ff6edaa..910586fed51 100644 --- a/legacy/builder/container_setup.go +++ b/legacy/builder/container_setup.go @@ -23,8 +23,18 @@ import ( type ContainerSetupHardwareToolsLibsSketchAndProps struct{} func (s *ContainerSetupHardwareToolsLibsSketchAndProps) Run(ctx *types.Context) error { + sketchBuildPath, librariesBuildPath, coreBuildPath, + warningsLevel, librariesResolutionResults, err := AddAdditionalEntriesToContext(ctx.BuildPath, ctx.WarningsLevel) + if err != nil { + return errors.WithStack(err) + } + ctx.SketchBuildPath = sketchBuildPath + ctx.LibrariesBuildPath = librariesBuildPath + ctx.CoreBuildPath = coreBuildPath + ctx.WarningsLevel = warningsLevel + ctx.LibrariesResolutionResults = librariesResolutionResults + commands := []types.Command{ - &AddAdditionalEntriesToContext{}, &FailIfBuildPathEqualsSketchPath{}, &LibrariesLoader{}, }