@@ -3,17 +3,13 @@ package instances
3
3
import (
4
4
"sync"
5
5
6
- "github.com/arduino/arduino-cli/commands/cmderrors"
7
- "github.com/arduino/arduino-cli/i18n"
8
6
"github.com/arduino/arduino-cli/internal/arduino/cores/packagemanager"
9
7
"github.com/arduino/arduino-cli/internal/arduino/libraries/librariesmanager"
10
- "github.com/arduino/arduino-cli/internal/cli/configuration"
11
8
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
12
9
"github.com/arduino/arduino-cli/version"
10
+ "github.com/arduino/go-paths-helper"
13
11
)
14
12
15
- var tr = i18n .Tr
16
-
17
13
// coreInstance is an instance of the Arduino Core Services. The user can
18
14
// instantiate as many as needed by providing a different configuration
19
15
// for each one.
@@ -74,45 +70,18 @@ func SetLibraryManager(inst *rpc.Instance, lm *librariesmanager.LibrariesManager
74
70
return true
75
71
}
76
72
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 ) {
79
75
instance := & coreInstance {}
80
76
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
-
100
77
// Create package manager
101
78
userAgent := "arduino-cli/" + version .VersionInfo .VersionString
102
79
for _ , ua := range extraUserAgent {
103
80
userAgent += " " + ua
104
81
}
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 )
116
85
117
86
// Save instance
118
87
instancesMux .Lock ()
0 commit comments