@@ -121,11 +121,13 @@ func (o *downloadOption) providerURLParse(path string) (url string, err error) {
121
121
122
122
if err = yaml .Unmarshal (data , & cfg ); err == nil {
123
123
hdPackage := & hdPackage {
124
- Name : o .name ,
125
- Version : version ,
126
- OS : runtime .GOOS ,
127
- Arch : runtime .GOARCH ,
124
+ Name : o .name ,
125
+ Version : version ,
126
+ OS : getReplacement (runtime .GOOS , cfg .Replacements ),
127
+ Arch : getReplacement (runtime .GOARCH , cfg .Replacements ),
128
+ VersionNum : strings .TrimPrefix (version , "v" ),
128
129
}
130
+
129
131
if version == "latest" {
130
132
ghClient := pkg.ReleaseClient {
131
133
Org : org ,
@@ -134,6 +136,7 @@ func (o *downloadOption) providerURLParse(path string) (url string, err error) {
134
136
ghClient .Init ()
135
137
if asset , err := ghClient .GetLatestJCLIAsset (); err == nil {
136
138
hdPackage .Version = asset .TagName
139
+ hdPackage .VersionNum = strings .TrimPrefix (asset .TagName , "v" )
137
140
} else {
138
141
fmt .Println (err , "cannot get the asset" )
139
142
}
@@ -148,10 +151,12 @@ func (o *downloadOption) providerURLParse(path string) (url string, err error) {
148
151
org , repo , version , buf .String ())
149
152
150
153
o .Output = buf .String ()
154
+ } else {
155
+ return
151
156
}
152
157
}
153
158
154
- o .Tar = cfg .Tar
159
+ o .Tar = cfg .Tar != "false"
155
160
if cfg .Binary != "" {
156
161
o .name = cfg .Binary
157
162
}
@@ -162,17 +167,19 @@ func (o *downloadOption) providerURLParse(path string) (url string, err error) {
162
167
}
163
168
164
169
type hdConfig struct {
165
- Name string
166
- Filename string
167
- Binary string
168
- Tar bool
170
+ Name string
171
+ Filename string
172
+ Binary string
173
+ Tar string
174
+ Replacements map [string ]string
169
175
}
170
176
171
177
type hdPackage struct {
172
- Name string
173
- Version string
174
- OS string
175
- Arch string
178
+ Name string
179
+ Version string // e.g. v1.0.1
180
+ VersionNum string // e.g. 1.0.1
181
+ OS string // e.g. linux, darwin
182
+ Arch string // e.g. amd64
176
183
}
177
184
178
185
func (o * downloadOption ) preRunE (cmd * cobra.Command , args []string ) (err error ) {
0 commit comments