Skip to content

Commit 666e833

Browse files
committed
DRAFT
1 parent cdcec9b commit 666e833

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2528
-1274
lines changed

Diff for: commands/instances.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import (
3636
"github.com/arduino/arduino-cli/internal/arduino/resources"
3737
"github.com/arduino/arduino-cli/internal/arduino/sketch"
3838
"github.com/arduino/arduino-cli/internal/arduino/utils"
39-
"github.com/arduino/arduino-cli/internal/cli/configuration"
4039
"github.com/arduino/arduino-cli/internal/i18n"
4140
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
4241
paths "github.com/arduino/go-paths-helper"
@@ -72,7 +71,7 @@ func (s *arduinoCoreServerImpl) Create(ctx context.Context, req *rpc.CreateReque
7271
}
7372

7473
// Setup downloads directory
75-
downloadsDir := configuration.DownloadsDir(s.settings)
74+
downloadsDir := s.settings.DownloadsDir()
7675
if downloadsDir.NotExist() {
7776
err := downloadsDir.MkdirAll()
7877
if err != nil {
@@ -81,8 +80,8 @@ func (s *arduinoCoreServerImpl) Create(ctx context.Context, req *rpc.CreateReque
8180
}
8281

8382
// Setup data directory
84-
dataDir := configuration.DataDir(s.settings)
85-
packagesDir := configuration.PackagesDir(s.settings)
83+
dataDir := s.settings.DataDir()
84+
packagesDir := s.settings.PackagesDir()
8685
if packagesDir.NotExist() {
8786
err := packagesDir.MkdirAll()
8887
if err != nil {
@@ -192,7 +191,7 @@ func (s *arduinoCoreServerImpl) Init(req *rpc.InitRequest, stream rpc.ArduinoCor
192191
}
193192
}
194193

195-
if err := firstUpdate(ctx, s, req.GetInstance(), configuration.DataDir(s.settings), downloadCallback, allPackageIndexUrls); err != nil {
194+
if err := firstUpdate(ctx, s, req.GetInstance(), s.settings.DataDir(), downloadCallback, allPackageIndexUrls); err != nil {
196195
e := &cmderrors.InitFailedError{
197196
Code: codes.InvalidArgument,
198197
Cause: err,
@@ -349,7 +348,7 @@ func (s *arduinoCoreServerImpl) Init(req *rpc.InitRequest, stream rpc.ArduinoCor
349348

350349
if profile == nil {
351350
// Add directories of libraries bundled with IDE
352-
if bundledLibsDir := configuration.IDEBuiltinLibrariesDir(s.settings); bundledLibsDir != nil {
351+
if bundledLibsDir := s.settings.IDEBuiltinLibrariesDir(); bundledLibsDir != nil {
353352
lmb.AddLibrariesDir(librariesmanager.LibrariesDir{
354353
Path: bundledLibsDir,
355354
Location: libraries.IDEBuiltIn,
@@ -358,14 +357,14 @@ func (s *arduinoCoreServerImpl) Init(req *rpc.InitRequest, stream rpc.ArduinoCor
358357

359358
// Add libraries directory from config file
360359
lmb.AddLibrariesDir(librariesmanager.LibrariesDir{
361-
Path: configuration.LibrariesDir(s.settings),
360+
Path: s.settings.LibrariesDir(),
362361
Location: libraries.User,
363362
})
364363
} else {
365364
// Load libraries required for profile
366365
for _, libraryRef := range profile.Libraries {
367366
uid := libraryRef.InternalUniqueIdentifier()
368-
libRoot := configuration.ProfilesCacheDir(s.settings).Join(uid)
367+
libRoot := s.settings.ProfilesCacheDir().Join(uid)
369368
libDir := libRoot.Join(libraryRef.Library)
370369

371370
if !libDir.IsDir() {
@@ -548,7 +547,7 @@ func (s *arduinoCoreServerImpl) UpdateIndex(req *rpc.UpdateIndexRequest, stream
548547
Message: &rpc.UpdateIndexResponse_DownloadProgress{DownloadProgress: p},
549548
})
550549
}
551-
indexpath := configuration.DataDir(s.settings)
550+
indexpath := s.settings.DataDir()
552551

553552
urls := []string{globals.DefaultIndexURL}
554553
if !req.GetIgnoreCustomPackageIndexes() {
@@ -614,6 +613,7 @@ func (s *arduinoCoreServerImpl) UpdateIndex(req *rpc.UpdateIndexRequest, stream
614613
downloadCB.Start(u, tr("Downloading index: %s", filepath.Base(URL.Path)))
615614
downloadCB.End(false, tr("Invalid network configuration: %s", err))
616615
failed = true
616+
continue
617617
}
618618

619619
if strings.HasSuffix(URL.Host, "arduino.cc") && strings.HasSuffix(URL.Path, ".json") {

Diff for: commands/service.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,25 @@ import (
2020

2121
"github.com/arduino/arduino-cli/internal/cli/configuration"
2222
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
23+
"github.com/arduino/arduino-cli/version"
2324
)
2425

2526
// NewArduinoCoreServer returns an implementation of the ArduinoCoreService gRPC service
2627
// that uses the provided version string.
27-
func NewArduinoCoreServer(version string, settings *configuration.Settings) rpc.ArduinoCoreServiceServer {
28+
func NewArduinoCoreServer() rpc.ArduinoCoreServiceServer {
2829
return &arduinoCoreServerImpl{
29-
versionString: version,
30-
settings: settings,
30+
settings: configuration.NewSettings(),
3131
}
3232
}
3333

3434
type arduinoCoreServerImpl struct {
3535
rpc.UnsafeArduinoCoreServiceServer // Force compile error for unimplemented methods
3636

37-
versionString string
38-
3937
// Settings holds configurations of the CLI and the gRPC consumers
4038
settings *configuration.Settings
4139
}
4240

4341
// Version returns the version of the Arduino CLI
4442
func (s *arduinoCoreServerImpl) Version(ctx context.Context, req *rpc.VersionRequest) (*rpc.VersionResponse, error) {
45-
return &rpc.VersionResponse{Version: s.versionString}, nil
43+
return &rpc.VersionResponse{Version: version.VersionInfo.VersionString}, nil
4644
}

Diff for: commands/service_cache_clean.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@ package commands
1818
import (
1919
"context"
2020

21-
"github.com/arduino/arduino-cli/internal/cli/configuration"
2221
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2322
)
2423

2524
// CleanDownloadCacheDirectory clean the download cache directory (where archives are downloaded).
2625
func (s *arduinoCoreServerImpl) CleanDownloadCacheDirectory(ctx context.Context, req *rpc.CleanDownloadCacheDirectoryRequest) (*rpc.CleanDownloadCacheDirectoryResponse, error) {
27-
cachePath := configuration.DownloadsDir(s.settings)
26+
cachePath := s.settings.DownloadsDir()
2827
err := cachePath.RemoveAll()
2928
if err != nil {
3029
return nil, err

Diff for: commands/service_compile.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import (
3232
"github.com/arduino/arduino-cli/internal/arduino/sketch"
3333
"github.com/arduino/arduino-cli/internal/arduino/utils"
3434
"github.com/arduino/arduino-cli/internal/buildcache"
35-
"github.com/arduino/arduino-cli/internal/cli/configuration"
3635
"github.com/arduino/arduino-cli/internal/inventory"
3736
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3837
paths "github.com/arduino/go-paths-helper"
@@ -67,7 +66,7 @@ func (s *arduinoCoreServerImpl) Compile(req *rpc.CompileRequest, stream rpc.Ardu
6766
ctx := stream.Context()
6867
syncSend := NewSynchronizedSend(stream.Send)
6968

70-
exportBinaries := s.settings.GetBool("sketch.always_export_binaries")
69+
exportBinaries := s.settings.SketchAlwaysExportBinaries()
7170
if e := req.ExportBinaries; e != nil {
7271
exportBinaries = *e
7372
}
@@ -175,8 +174,8 @@ func (s *arduinoCoreServerImpl) Compile(req *rpc.CompileRequest, stream rpc.Ardu
175174
// cache is purged after compilation to not remove entries that might be required
176175

177176
defer maybePurgeBuildCache(
178-
s.settings.GetUint("build_cache.compilations_before_purge"),
179-
s.settings.GetDuration("build_cache.ttl").Abs())
177+
s.settings.GetCompilationsBeforeBuildCachePurge(),
178+
s.settings.GetBuildCacheTTL().Abs())
180179

181180
var coreBuildCachePath *paths.Path
182181
if req.GetBuildCachePath() == "" {
@@ -198,7 +197,7 @@ func (s *arduinoCoreServerImpl) Compile(req *rpc.CompileRequest, stream rpc.Ardu
198197

199198
actualPlatform := buildPlatform
200199
otherLibrariesDirs := paths.NewPathList(req.GetLibraries()...)
201-
otherLibrariesDirs.Add(configuration.LibrariesDir(s.settings))
200+
otherLibrariesDirs.Add(s.settings.LibrariesDir())
202201

203202
var libsManager *librariesmanager.LibrariesManager
204203
if pme.GetProfile() != nil {
@@ -231,9 +230,9 @@ func (s *arduinoCoreServerImpl) Compile(req *rpc.CompileRequest, stream rpc.Ardu
231230
coreBuildCachePath,
232231
int(req.GetJobs()),
233232
req.GetBuildProperties(),
234-
configuration.HardwareDirectories(s.settings),
233+
s.settings.HardwareDirectories(),
235234
otherLibrariesDirs,
236-
configuration.IDEBuiltinLibrariesDir(s.settings),
235+
s.settings.IDEBuiltinLibrariesDir(),
237236
fqbn,
238237
req.GetClean(),
239238
req.GetSourceOverride(),

Diff for: commands/service_platform_search_test.go

+19-5
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
"context"
2020
"testing"
2121

22-
"github.com/arduino/arduino-cli/internal/cli/configuration"
2322
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2423
"github.com/arduino/go-paths-helper"
2524
"github.com/stretchr/testify/require"
@@ -36,9 +35,17 @@ func TestPlatformSearch(t *testing.T) {
3635
err := paths.New("testdata", "platform", "package_index.json").CopyTo(dataDir.Join("package_index.json"))
3736
require.Nil(t, err)
3837

39-
settings := configuration.Init(paths.TempDir().Join("test", "arduino-cli.yaml").String())
40-
srv := NewArduinoCoreServer("", settings)
4138
ctx := context.Background()
39+
srv := NewArduinoCoreServer()
40+
41+
conf, err := paths.TempDir().Join("test", "arduino-cli.yaml").ReadFile()
42+
require.NoError(t, err)
43+
_, err = srv.ConfigurationOpen(ctx, &rpc.ConfigurationOpenRequest{
44+
Format: "yaml",
45+
EncodedSettings: string(conf),
46+
})
47+
require.NoError(t, err)
48+
4249
createResp, err := srv.Create(ctx, &rpc.CreateRequest{})
4350
require.NoError(t, err)
4451

@@ -337,9 +344,16 @@ func TestPlatformSearchSorting(t *testing.T) {
337344
err := paths.New("testdata", "platform", "package_index.json").CopyTo(dataDir.Join("package_index.json"))
338345
require.Nil(t, err)
339346

340-
settings := configuration.Init(paths.TempDir().Join("test", "arduino-cli.yaml").String())
341-
srv := NewArduinoCoreServer("", settings)
342347
ctx := context.Background()
348+
srv := NewArduinoCoreServer()
349+
350+
conf, err := paths.TempDir().Join("test", "arduino-cli.yaml").ReadFile()
351+
require.NoError(t, err)
352+
_, err = srv.ConfigurationOpen(ctx, &rpc.ConfigurationOpenRequest{
353+
Format: "yaml",
354+
EncodedSettings: string(conf),
355+
})
356+
require.NoError(t, err)
343357

344358
createResp, err := srv.Create(ctx, &rpc.CreateRequest{})
345359
require.NoError(t, err)

0 commit comments

Comments
 (0)