@@ -42,9 +42,14 @@ func initInstallCommand() *cobra.Command {
4242 Args : cobra .MinimumNArgs (1 ),
4343 Run : runInstallCommand ,
4444 }
45+ installCommand .Flags ().BoolVar (& installFlags .noDeps , "no-deps" , false , "Do not install dependencies." )
4546 return installCommand
4647}
4748
49+ var installFlags struct {
50+ noDeps bool
51+ }
52+
4853func runInstallCommand (cmd * cobra.Command , args []string ) {
4954 instance := instance .CreateInstaceIgnorePlatformIndexErrors ()
5055 libRefs , err := globals .ParseLibraryReferenceArgs (args )
@@ -54,28 +59,37 @@ func runInstallCommand(cmd *cobra.Command, args []string) {
5459 }
5560
5661 toInstall := map [string ]* rpc.LibraryDependencyStatus {}
57- for _ , libRef := range libRefs {
58- depsResp , err := lib .LibraryResolveDependencies (context .Background (), & rpc.LibraryResolveDependenciesReq {
59- Instance : instance ,
60- Name : libRef .Name ,
61- Version : libRef .Version ,
62- })
63- if err != nil {
64- feedback .Errorf ("Error resolving dependencies for %s: %s" , libRef , err )
62+ if installFlags .noDeps {
63+ for _ , libRef := range libRefs {
64+ toInstall [libRef .Name ] = & rpc.LibraryDependencyStatus {
65+ Name : libRef .Name ,
66+ VersionRequired : libRef .Version ,
67+ }
6568 }
66- for _ , dep := range depsResp .GetDependencies () {
67- feedback .Printf ("%s depends on %s@%s" , libRef , dep .GetName (), dep .GetVersionRequired ())
68- if existingDep , has := toInstall [dep .GetName ()]; has {
69- if existingDep .GetVersionRequired () != dep .GetVersionRequired () {
70- // TODO: make a better error
71- feedback .Errorf ("The library %s is required in two different versions: %s and %s" ,
72- dep .GetName (), dep .GetVersionRequired (), existingDep .GetVersionRequired ())
73- os .Exit (errorcodes .ErrGeneric )
69+ } else {
70+ for _ , libRef := range libRefs {
71+ depsResp , err := lib .LibraryResolveDependencies (context .Background (), & rpc.LibraryResolveDependenciesReq {
72+ Instance : instance ,
73+ Name : libRef .Name ,
74+ Version : libRef .Version ,
75+ })
76+ if err != nil {
77+ feedback .Errorf ("Error resolving dependencies for %s: %s" , libRef , err )
78+ }
79+ for _ , dep := range depsResp .GetDependencies () {
80+ feedback .Printf ("%s depends on %s@%s" , libRef , dep .GetName (), dep .GetVersionRequired ())
81+ if existingDep , has := toInstall [dep .GetName ()]; has {
82+ if existingDep .GetVersionRequired () != dep .GetVersionRequired () {
83+ // TODO: make a better error
84+ feedback .Errorf ("The library %s is required in two different versions: %s and %s" ,
85+ dep .GetName (), dep .GetVersionRequired (), existingDep .GetVersionRequired ())
86+ os .Exit (errorcodes .ErrGeneric )
87+ }
7488 }
89+ toInstall [dep .GetName ()] = dep
7590 }
76- toInstall [ dep . GetName ()] = dep
91+ feedback . Print ()
7792 }
78- feedback .Print ()
7993 }
8094
8195 for _ , library := range toInstall {
0 commit comments