Unverified Commit 89368c92 authored by Cristian Maglie's avatar Cristian Maglie Committed by GitHub

fix: Allow build-path to different drive than the sketch (#2163)

This issue is mainly seen on Windows

Fix https://github.com/arduino/arduino-cli/issues/2156
parent ad9ddb88
---
name: github.com/arduino/go-paths-helper
version: v1.8.0
version: v1.9.0
type: go
summary:
summary:
homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper
license: gpl-2.0-or-later
licenses:
......
......@@ -265,10 +265,7 @@ func (pme *Explorer) IsManagedPlatformRelease(platformRelease *cores.PlatformRel
if packagesDir.FollowSymLink() != nil {
return false
}
managed, err := installDir.IsInsideDir(packagesDir)
if err != nil {
return false
}
managed := installDir.IsInsideDir(packagesDir)
return managed
}
......@@ -371,10 +368,7 @@ func (pme *Explorer) IsManagedToolRelease(toolRelease *cores.ToolRelease) bool {
if packagesDir.FollowSymLink() != nil {
return false
}
managed, err := installDir.IsInsideDir(packagesDir)
if err != nil {
return false
}
managed := installDir.IsInsideDir(packagesDir)
return managed
}
......
......@@ -135,7 +135,7 @@ func New(path *paths.Path) (*Sketch, error) {
} else if _, found := globals.AdditionalFileValidExtensions[ext]; found {
// If the user exported the compiles binaries to the Sketch "build" folder
// they would be picked up but we don't want them, so we skip them like so
if isInBuildFolder, err := p.IsInsideDir(sketch.FullPath.Join("build")); isInBuildFolder || err != nil {
if p.IsInsideDir(sketch.FullPath.Join("build")) {
continue
}
......
......@@ -131,9 +131,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
var buildPath *paths.Path
if buildPathArg := req.GetBuildPath(); buildPathArg != "" {
buildPath = paths.New(req.GetBuildPath()).Canonical()
if in, err := buildPath.IsInsideDir(sk.FullPath); err != nil {
return nil, &arduino.NotFoundError{Message: tr("Cannot find build path"), Cause: err}
} else if in && buildPath.IsDir() {
if in := buildPath.IsInsideDir(sk.FullPath); in && buildPath.IsDir() {
if sk.AdditionalFiles, err = removeBuildFromSketchFiles(sk.AdditionalFiles, buildPath); err != nil {
return nil, err
}
......@@ -385,9 +383,7 @@ func removeBuildFromSketchFiles(files paths.PathList, build *paths.Path) (paths.
var res paths.PathList
ignored := false
for _, file := range files {
if in, err := file.IsInsideDir(build); err != nil {
return nil, &arduino.NotFoundError{Message: tr("Cannot find build path"), Cause: err}
} else if !in {
if !file.IsInsideDir(build) {
res = append(res, file)
} else if !ignored {
ignored = true
......
......@@ -6,7 +6,7 @@ go 1.20
replace github.com/mailru/easyjson => github.com/cmaglie/easyjson v0.8.1
require (
github.com/arduino/go-paths-helper v1.8.0
github.com/arduino/go-paths-helper v1.9.0
github.com/arduino/go-properties-orderedmap v1.7.1
github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b
github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment