@@ -42,9 +42,14 @@ func initInstallCommand() *cobra.Command {
42
42
Args : cobra .MinimumNArgs (1 ),
43
43
Run : runInstallCommand ,
44
44
}
45
+ installCommand .Flags ().BoolVar (& installFlags .noDeps , "no-deps" , false , "Do not install dependencies." )
45
46
return installCommand
46
47
}
47
48
49
+ var installFlags struct {
50
+ noDeps bool
51
+ }
52
+
48
53
func runInstallCommand (cmd * cobra.Command , args []string ) {
49
54
instance := instance .CreateInstaceIgnorePlatformIndexErrors ()
50
55
libRefs , err := globals .ParseLibraryReferenceArgs (args )
@@ -54,28 +59,36 @@ func runInstallCommand(cmd *cobra.Command, args []string) {
54
59
}
55
60
56
61
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
+ }
65
68
}
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
+ }
74
88
}
89
+ toInstall [dep .GetName ()] = dep
75
90
}
76
- toInstall [dep .GetName ()] = dep
77
91
}
78
- feedback .Print ()
79
92
}
80
93
81
94
for _ , library := range toInstall {
0 commit comments