@@ -13,7 +13,6 @@ import (
13
13
"os"
14
14
"os/exec"
15
15
"path/filepath"
16
- "regexp"
17
16
"runtime/trace"
18
17
"slices"
19
18
"strconv"
@@ -24,29 +23,27 @@ import (
24
23
"github.com/briandowns/spinner"
25
24
"github.com/pkg/errors"
26
25
"github.com/samber/lo"
27
- "go.jetpack.io/devbox/internal/cachehash"
28
- "go.jetpack.io/devbox/internal/devbox/envpath"
29
- "go.jetpack.io/devbox/internal/devbox/generate"
30
- "go.jetpack.io/devbox/internal/devpkg"
31
- "go.jetpack.io/devbox/internal/devpkg/pkgtype"
32
- "go.jetpack.io/devbox/internal/searcher"
33
- "go.jetpack.io/devbox/internal/shellgen"
34
- "go.jetpack.io/devbox/internal/telemetry"
35
- "go.jetpack.io/devbox/internal/vercheck"
36
-
37
26
"go.jetpack.io/devbox/internal/boxcli/usererr"
27
+ "go.jetpack.io/devbox/internal/cachehash"
38
28
"go.jetpack.io/devbox/internal/cmdutil"
39
29
"go.jetpack.io/devbox/internal/conf"
40
30
"go.jetpack.io/devbox/internal/debug"
41
31
"go.jetpack.io/devbox/internal/devbox/devopt"
32
+ "go.jetpack.io/devbox/internal/devbox/envpath"
33
+ "go.jetpack.io/devbox/internal/devbox/generate"
42
34
"go.jetpack.io/devbox/internal/devconfig"
35
+ "go.jetpack.io/devbox/internal/devpkg"
36
+ "go.jetpack.io/devbox/internal/devpkg/pkgtype"
43
37
"go.jetpack.io/devbox/internal/envir"
44
38
"go.jetpack.io/devbox/internal/fileutil"
45
39
"go.jetpack.io/devbox/internal/lock"
46
40
"go.jetpack.io/devbox/internal/nix"
47
41
"go.jetpack.io/devbox/internal/plugin"
48
42
"go.jetpack.io/devbox/internal/redact"
43
+ "go.jetpack.io/devbox/internal/searcher"
49
44
"go.jetpack.io/devbox/internal/services"
45
+ "go.jetpack.io/devbox/internal/shellgen"
46
+ "go.jetpack.io/devbox/internal/telemetry"
50
47
"go.jetpack.io/devbox/internal/ux"
51
48
)
52
49
@@ -768,7 +765,12 @@ func (d *Devbox) StartProcessManager(
768
765
}
769
766
}
770
767
771
- servicesProcessComposeOpts , err := d .configureProcessCompose (ctx , processComposeOpts )
768
+ err = initDevboxUtilityProject (ctx , d .stderr )
769
+ if err != nil {
770
+ return err
771
+ }
772
+
773
+ processComposeBinPath , err := utilityLookPath ("process-compose" )
772
774
if err != nil {
773
775
return err
774
776
}
@@ -780,55 +782,14 @@ func (d *Devbox) StartProcessManager(
780
782
requestedServices ,
781
783
svcs ,
782
784
d .projectDir ,
783
- * servicesProcessComposeOpts ,
785
+ services.ProcessComposeOpts {
786
+ BinPath : processComposeBinPath ,
787
+ Background : processComposeOpts .Background ,
788
+ ExtraFlags : processComposeOpts .ExtraFlags ,
789
+ },
784
790
)
785
791
}
786
792
787
- func (d * Devbox ) configureProcessCompose (ctx context.Context , processComposeOpts devopt.ProcessComposeOpts ) (* services.ProcessComposeOpts , error ) {
788
- processComposePath , err := utilityLookPath ("process-compose" )
789
- if err != nil {
790
- fmt .Fprintln (d .stderr , "Installing process-compose. This may take a minute but will only happen once." )
791
- if err = d .addDevboxUtilityPackage (ctx , "github:F1bonacc1/process-compose/" + processComposeTargetVersion ); err != nil {
792
- return nil , err
793
- }
794
-
795
- // re-lookup the path to process-compose
796
- processComposePath , err = utilityLookPath ("process-compose" )
797
- if err != nil {
798
- fmt .Fprintln (d .stderr , "failed to find process-compose after installing it." )
799
- return nil , err
800
- }
801
- }
802
- re := regexp .MustCompile (`(?m)Version:\s*(v\d*\.\d*\.\d*)` )
803
- pcVersionString , err := exec .Command (processComposePath , "version" ).Output ()
804
- if err != nil {
805
- fmt .Fprintln (d .stderr , "failed to get process-compose version" )
806
- return nil , err
807
- }
808
-
809
- pcVersion := re .FindStringSubmatch (strings .TrimSpace (string (pcVersionString )))[1 ]
810
-
811
- if vercheck .SemverCompare (pcVersion , processComposeTargetVersion ) < 0 {
812
- fmt .Fprintln (d .stderr , "Upgrading process-compose to " + processComposeTargetVersion + "..." )
813
- oldProcessComposePkg := "github:F1bonacc1/process-compose/" + pcVersion + "#defaultPackage." + nix .System ()
814
- newProcessComposePkg := "github:F1bonacc1/process-compose/" + processComposeTargetVersion
815
- // Find the old process Compose package
816
- if err := d .removeDevboxUtilityPackage (ctx , oldProcessComposePkg ); err != nil {
817
- return nil , err
818
- }
819
-
820
- if err = d .addDevboxUtilityPackage (ctx , newProcessComposePkg ); err != nil {
821
- return nil , err
822
- }
823
- }
824
-
825
- return & services.ProcessComposeOpts {
826
- BinPath : processComposePath ,
827
- Background : processComposeOpts .Background ,
828
- ExtraFlags : processComposeOpts .ExtraFlags ,
829
- }, nil
830
- }
831
-
832
793
// computeEnv computes the set of environment variables that define a Devbox
833
794
// environment. The "devbox run" and "devbox shell" commands source these
834
795
// variables into a shell before executing a command or showing an interactive
0 commit comments