@@ -40,64 +40,80 @@ func initInstallCommand() *cobra.Command {
40
40
Run : runInstallCommand ,
41
41
}
42
42
installCommand .Flags ().BoolVar (& installFlags .noDeps , "no-deps" , false , "Do not install dependencies." )
43
+ installCommand .Flags ().StringVarP (& installFlags .gitURL , "git-url" , "g" , "" , "Enter git url for libraries hosted on repositories" )
44
+ installCommand .Flags ().StringVarP (& installFlags .zipPath , "zip-path" , "z" , "" , "Enter a path to zip file" )
43
45
return installCommand
44
46
}
45
47
46
48
var installFlags struct {
47
- noDeps bool
49
+ noDeps bool
50
+ gitURL string
51
+ zipPath string
48
52
}
49
53
50
54
func runInstallCommand (cmd * cobra.Command , args []string ) {
51
55
instance := instance .CreateInstanceIgnorePlatformIndexErrors ()
52
- libRefs , err := ParseLibraryReferenceArgsAndAdjustCase (instance , args )
53
- if err != nil {
54
- feedback .Errorf ("Arguments error: %v" , err )
55
- os .Exit (errorcodes .ErrBadArgument )
56
- }
57
-
58
- toInstall := map [string ]* rpc.LibraryDependencyStatus {}
59
- if installFlags .noDeps {
60
- for _ , libRef := range libRefs {
61
- toInstall [libRef .Name ] = & rpc.LibraryDependencyStatus {
62
- Name : libRef .Name ,
63
- VersionRequired : libRef .Version ,
64
- }
56
+ if installFlags .zipPath != "" {
57
+ ZiplibraryInstallReq := & rpc.ZipLibraryInstallReq {
58
+ Instance : instance ,
59
+ Path : installFlags .zipPath ,
65
60
}
66
- } else {
67
- for _ , libRef := range libRefs {
68
- depsResp , err := lib .LibraryResolveDependencies (context .Background (), & rpc.LibraryResolveDependenciesReq {
69
- Instance : instance ,
70
- Name : libRef .Name ,
71
- Version : libRef .Version ,
72
- })
73
- if err != nil {
74
- feedback .Errorf ("Error resolving dependencies for %s: %s" , libRef , err )
61
+ _ , err := lib .ZipLibraryInstall (context .Background (), ZiplibraryInstallReq )
62
+ if err != nil {
63
+ feedback .Errorf ("Error installing Zip Library %v" , err )
64
+ os .Exit (errorcodes .ErrGeneric )
65
+ }
66
+ }else {
67
+ libRefs , err := ParseLibraryReferenceArgsAndAdjustCase (instance , args )
68
+ if err != nil {
69
+ feedback .Errorf ("Arguments error: %v" , err )
70
+ os .Exit (errorcodes .ErrBadArgument )
71
+ }
72
+
73
+ toInstall := map [string ]* rpc.LibraryDependencyStatus {}
74
+ if installFlags .noDeps {
75
+ for _ , libRef := range libRefs {
76
+ toInstall [libRef .Name ] = & rpc.LibraryDependencyStatus {
77
+ Name : libRef .Name ,
78
+ VersionRequired : libRef .Version ,
79
+ }
75
80
}
76
- for _ , dep := range depsResp .GetDependencies () {
77
- feedback .Printf ("%s depends on %s@%s" , libRef , dep .GetName (), dep .GetVersionRequired ())
78
- if existingDep , has := toInstall [dep .GetName ()]; has {
79
- if existingDep .GetVersionRequired () != dep .GetVersionRequired () {
80
- // TODO: make a better error
81
- feedback .Errorf ("The library %s is required in two different versions: %s and %s" ,
82
- dep .GetName (), dep .GetVersionRequired (), existingDep .GetVersionRequired ())
83
- os .Exit (errorcodes .ErrGeneric )
81
+ } else {
82
+ for _ , libRef := range libRefs {
83
+ depsResp , err := lib .LibraryResolveDependencies (context .Background (), & rpc.LibraryResolveDependenciesReq {
84
+ Instance : instance ,
85
+ Name : libRef .Name ,
86
+ Version : libRef .Version ,
87
+ })
88
+ if err != nil {
89
+ feedback .Errorf ("Error resolving dependencies for %s: %s" , libRef , err )
90
+ }
91
+ for _ , dep := range depsResp .GetDependencies () {
92
+ feedback .Printf ("%s depends on %s@%s" , libRef , dep .GetName (), dep .GetVersionRequired ())
93
+ if existingDep , has := toInstall [dep .GetName ()]; has {
94
+ if existingDep .GetVersionRequired () != dep .GetVersionRequired () {
95
+ // TODO: make a better error
96
+ feedback .Errorf ("The library %s is required in two different versions: %s and %s" ,
97
+ dep .GetName (), dep .GetVersionRequired (), existingDep .GetVersionRequired ())
98
+ os .Exit (errorcodes .ErrGeneric )
99
+ }
84
100
}
101
+ toInstall [dep .GetName ()] = dep
85
102
}
86
- toInstall [dep .GetName ()] = dep
87
103
}
88
104
}
89
- }
90
105
91
- for _ , library := range toInstall {
92
- libraryInstallReq := & rpc.LibraryInstallReq {
93
- Instance : instance ,
94
- Name : library .Name ,
95
- Version : library .VersionRequired ,
96
- }
97
- err := lib .LibraryInstall (context .Background (), libraryInstallReq , output .ProgressBar (), output .TaskProgress ())
98
- if err != nil {
99
- feedback .Errorf ("Error installing %s: %v" , library , err )
100
- os .Exit (errorcodes .ErrGeneric )
106
+ for _ , library := range toInstall {
107
+ libraryInstallReq := & rpc.LibraryInstallReq {
108
+ Instance : instance ,
109
+ Name : library .Name ,
110
+ Version : library .VersionRequired ,
111
+ }
112
+ err := lib .LibraryInstall (context .Background (), libraryInstallReq , output .ProgressBar (), output .TaskProgress ())
113
+ if err != nil {
114
+ feedback .Errorf ("Error installing %s: %v" , library , err )
115
+ os .Exit (errorcodes .ErrGeneric )
116
+ }
101
117
}
102
118
}
103
119
}
0 commit comments