Skip to content

Commit 64b4846

Browse files
committed
Moved directories init out of commands/internal/instances
1 parent 2848981 commit 64b4846

File tree

2 files changed

+26
-38
lines changed

2 files changed

+26
-38
lines changed

commands/instances.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,26 @@ func installTool(pm *packagemanager.PackageManager, tool *cores.ToolRelease, dow
6161

6262
// Create a new CoreInstance ready to be initialized, supporting directories are also created.
6363
func Create(req *rpc.CreateRequest, extraUserAgent ...string) (*rpc.CreateResponse, error) {
64-
inst, err := instances.Create(extraUserAgent...)
64+
// Setup downloads directory
65+
downloadsDir := configuration.DownloadsDir(configuration.Settings)
66+
if downloadsDir.NotExist() {
67+
err := downloadsDir.MkdirAll()
68+
if err != nil {
69+
return nil, &cmderrors.PermissionDeniedError{Message: tr("Failed to create downloads directory"), Cause: err}
70+
}
71+
}
72+
73+
// Setup data directory
74+
dataDir := configuration.DataDir(configuration.Settings)
75+
packagesDir := configuration.PackagesDir(configuration.Settings)
76+
if packagesDir.NotExist() {
77+
err := packagesDir.MkdirAll()
78+
if err != nil {
79+
return nil, &cmderrors.PermissionDeniedError{Message: tr("Failed to create data directory"), Cause: err}
80+
}
81+
}
82+
83+
inst, err := instances.Create(dataDir, packagesDir, downloadsDir, extraUserAgent...)
6584
if err != nil {
6685
return nil, err
6786
}

commands/internal/instances/instances.go

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,13 @@ package instances
33
import (
44
"sync"
55

6-
"github.com/arduino/arduino-cli/commands/cmderrors"
7-
"github.com/arduino/arduino-cli/i18n"
86
"github.com/arduino/arduino-cli/internal/arduino/cores/packagemanager"
97
"github.com/arduino/arduino-cli/internal/arduino/libraries/librariesmanager"
10-
"github.com/arduino/arduino-cli/internal/cli/configuration"
118
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
129
"github.com/arduino/arduino-cli/version"
10+
"github.com/arduino/go-paths-helper"
1311
)
1412

15-
var tr = i18n.Tr
16-
1713
// coreInstance is an instance of the Arduino Core Services. The user can
1814
// instantiate as many as needed by providing a different configuration
1915
// for each one.
@@ -74,45 +70,18 @@ func SetLibraryManager(inst *rpc.Instance, lm *librariesmanager.LibrariesManager
7470
return true
7571
}
7672

77-
// Create a new *rpc.Instance ready to be initialized, supporting directories are also created.
78-
func Create(extraUserAgent ...string) (*rpc.Instance, error) {
73+
// Create a new *rpc.Instance ready to be initialized
74+
func Create(dataDir, packagesDir, downloadsDir *paths.Path, extraUserAgent ...string) (*rpc.Instance, error) {
7975
instance := &coreInstance{}
8076

81-
// Setup downloads directory
82-
downloadsDir := configuration.DownloadsDir(configuration.Settings)
83-
if downloadsDir.NotExist() {
84-
err := downloadsDir.MkdirAll()
85-
if err != nil {
86-
return nil, &cmderrors.PermissionDeniedError{Message: tr("Failed to create downloads directory"), Cause: err}
87-
}
88-
}
89-
90-
// Setup data directory
91-
dataDir := configuration.DataDir(configuration.Settings)
92-
packagesDir := configuration.PackagesDir(configuration.Settings)
93-
if packagesDir.NotExist() {
94-
err := packagesDir.MkdirAll()
95-
if err != nil {
96-
return nil, &cmderrors.PermissionDeniedError{Message: tr("Failed to create data directory"), Cause: err}
97-
}
98-
}
99-
10077
// Create package manager
10178
userAgent := "arduino-cli/" + version.VersionInfo.VersionString
10279
for _, ua := range extraUserAgent {
10380
userAgent += " " + ua
10481
}
105-
instance.pm = packagemanager.NewBuilder(
106-
dataDir,
107-
configuration.PackagesDir(configuration.Settings),
108-
downloadsDir,
109-
dataDir.Join("tmp"),
110-
userAgent,
111-
).Build()
112-
instance.lm = librariesmanager.NewLibraryManager(
113-
dataDir,
114-
downloadsDir,
115-
)
82+
tempDir := dataDir.Join("tmp")
83+
instance.pm = packagemanager.NewBuilder(dataDir, packagesDir, downloadsDir, tempDir, userAgent).Build()
84+
instance.lm = librariesmanager.NewLibraryManager(dataDir, downloadsDir)
11685

11786
// Save instance
11887
instancesMux.Lock()

0 commit comments

Comments
 (0)