@@ -3,6 +3,7 @@ package instances
3
3
import (
4
4
"sync"
5
5
6
+ "github.com/arduino/arduino-cli/commands/cmderrors"
6
7
"github.com/arduino/arduino-cli/internal/arduino/cores/packagemanager"
7
8
"github.com/arduino/arduino-cli/internal/arduino/libraries/librariesmanager"
8
9
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -26,36 +27,37 @@ var instancesMux sync.Mutex
26
27
// GetPackageManager returns a PackageManager. If the package manager is not found
27
28
// (because the instance is invalid or has been destroyed), nil is returned.
28
29
// Deprecated: use GetPackageManagerExplorer instead.
29
- func GetPackageManager (inst * rpc.Instance ) * packagemanager.PackageManager {
30
+ func GetPackageManager (inst * rpc.Instance ) ( * packagemanager.PackageManager , error ) {
30
31
instancesMux .Lock ()
31
32
i := instances [inst .GetId ()]
32
33
instancesMux .Unlock ()
33
34
if i == nil {
34
- return nil
35
+ return nil , & cmderrors. InvalidInstanceError {}
35
36
}
36
- return i .pm
37
+ return i .pm , nil
37
38
}
38
39
39
40
// GetPackageManagerExplorer returns a new package manager Explorer. The
40
41
// explorer holds a read lock on the underlying PackageManager and it should
41
42
// be released by calling the returned "release" function.
42
- func GetPackageManagerExplorer (req * rpc.Instance ) (explorer * packagemanager.Explorer , release func ()) {
43
- pm := GetPackageManager (req )
44
- if pm = = nil {
45
- return nil , nil
43
+ func GetPackageManagerExplorer (req * rpc.Instance ) (explorer * packagemanager.Explorer , release func (), _err error ) {
44
+ pm , err := GetPackageManager (req )
45
+ if err ! = nil {
46
+ return nil , nil , err
46
47
}
47
- return pm .NewExplorer ()
48
+ pme , release := pm .NewExplorer ()
49
+ return pme , release , nil
48
50
}
49
51
50
52
// GetLibraryManager returns the library manager for the given instance.
51
- func GetLibraryManager (inst * rpc.Instance ) * librariesmanager.LibrariesManager {
53
+ func GetLibraryManager (inst * rpc.Instance ) ( * librariesmanager.LibrariesManager , error ) {
52
54
instancesMux .Lock ()
53
55
i := instances [inst .GetId ()]
54
56
instancesMux .Unlock ()
55
57
if i == nil {
56
- return nil
58
+ return nil , & cmderrors. InvalidInstanceError {}
57
59
}
58
- return i .lm
60
+ return i .lm , nil
59
61
}
60
62
61
63
// SetLibraryManager sets the library manager for the given instance.
0 commit comments