@@ -5,15 +5,13 @@ package devbox
5
5
6
6
import (
7
7
"context"
8
- "fmt"
9
8
"io/fs"
10
9
"os"
11
10
"path/filepath"
12
11
13
12
"github.com/pkg/errors"
14
13
"go.jetpack.io/devbox/internal/devpkg"
15
14
"go.jetpack.io/devbox/internal/nix"
16
- "go.jetpack.io/devbox/internal/nix/nixprofile"
17
15
18
16
"go.jetpack.io/devbox/internal/xdg"
19
17
)
@@ -47,7 +45,9 @@ func (d *Devbox) addDevboxUtilityPackage(ctx context.Context, pkgName string) er
47
45
return nil
48
46
}
49
47
50
- func (d * Devbox ) removeDevboxUtilityPackage (pkgName string ) error {
48
+ func (d * Devbox ) removeDevboxUtilityPackage (
49
+ ctx context.Context , pkgName string ,
50
+ ) error {
51
51
pkg := devpkg .PackageFromStringWithDefaults (pkgName , d .lockfile )
52
52
installables , err := pkg .Installables ()
53
53
if err != nil {
@@ -59,20 +59,15 @@ func (d *Devbox) removeDevboxUtilityPackage(pkgName string) error {
59
59
return err
60
60
}
61
61
62
- profile , err := nixprofile .ProfileListItems (d .stderr , utilityProfilePath )
63
- if err != nil {
64
- return err
65
- }
66
-
67
62
for _ , installable := range installables {
68
- for i , profileItem := range profile {
69
- if profileItem . MatchesUnlockedReference ( installable ) {
70
- err = nix . ProfileRemove ( utilityProfilePath , fmt . Sprint ( i ))
71
- if err != nil {
72
- return err
73
- }
74
- // We are done with this installable. Now, remove the next installable:
75
- break
63
+ storePaths , err := nix . StorePathsFromInstallable ( ctx , installable , false )
64
+ if err != nil {
65
+ return err
66
+ }
67
+
68
+ for _ , storePath := range storePaths {
69
+ if err = nix . ProfileRemove ( utilityProfilePath , storePath ); err != nil {
70
+ return err
76
71
}
77
72
}
78
73
}
0 commit comments