@@ -146,9 +146,29 @@ variable "jetbrains_ides" {
146
146
}
147
147
}
148
148
149
+ variable "releases_base_link" {
150
+ type = string
151
+ description = " "
152
+ default = " https://data.services.jetbrains.com"
153
+ validation {
154
+ condition = can (regex (" ^https?://.+$" , var. releases_base_link ))
155
+ error_message = " The releases_base_link must be a valid HTTP/S address."
156
+ }
157
+ }
158
+
159
+ variable "download_base_link" {
160
+ type = string
161
+ description = " "
162
+ default = " https://download.jetbrains.com"
163
+ validation {
164
+ condition = can (regex (" ^https?://.+$" , var. download_base_link ))
165
+ error_message = " The download_base_link must be a valid HTTP/S address."
166
+ }
167
+ }
168
+
149
169
data "http" "jetbrains_ide_versions" {
150
170
for_each = var. latest ? toset (var. jetbrains_ides ) : toset ([])
151
- url = " https://data.services.jetbrains.com /products/releases?code=${ each . key } &latest=true&type=${ var . channel } "
171
+ url = " ${ var . releases_base_link } /products/releases?code=${ each . key } &latest=true&type=${ var . channel } "
152
172
}
153
173
154
174
locals {
@@ -158,63 +178,63 @@ locals {
158
178
name = " GoLand" ,
159
179
identifier = " GO" ,
160
180
build_number = var.jetbrains_ide_versions[" GO" ].build_number,
161
- download_link = " https://download.jetbrains.com /go/goland-${ var . jetbrains_ide_versions [" GO" ]. version } .tar.gz"
181
+ download_link = " ${ var . download_base_link } /go/goland-${ var . jetbrains_ide_versions [" GO" ]. version } .tar.gz"
162
182
version = var.jetbrains_ide_versions[" GO" ].version
163
183
},
164
184
" WS" = {
165
185
icon = " /icon/webstorm.svg" ,
166
186
name = " WebStorm" ,
167
187
identifier = " WS" ,
168
188
build_number = var.jetbrains_ide_versions[" WS" ].build_number,
169
- download_link = " https://download.jetbrains.com /webstorm/WebStorm-${ var . jetbrains_ide_versions [" WS" ]. version } .tar.gz"
189
+ download_link = " ${ var . download_base_link } /webstorm/WebStorm-${ var . jetbrains_ide_versions [" WS" ]. version } .tar.gz"
170
190
version = var.jetbrains_ide_versions[" WS" ].version
171
191
},
172
192
" IU" = {
173
193
icon = " /icon/intellij.svg" ,
174
194
name = " IntelliJ IDEA Ultimate" ,
175
195
identifier = " IU" ,
176
196
build_number = var.jetbrains_ide_versions[" IU" ].build_number,
177
- download_link = " https://download.jetbrains.com /idea/ideaIU-${ var . jetbrains_ide_versions [" IU" ]. version } .tar.gz"
197
+ download_link = " ${ var . download_base_link } /idea/ideaIU-${ var . jetbrains_ide_versions [" IU" ]. version } .tar.gz"
178
198
version = var.jetbrains_ide_versions[" IU" ].version
179
199
},
180
200
" PY" = {
181
201
icon = " /icon/pycharm.svg" ,
182
202
name = " PyCharm Professional" ,
183
203
identifier = " PY" ,
184
204
build_number = var.jetbrains_ide_versions[" PY" ].build_number,
185
- download_link = " https://download.jetbrains.com /python/pycharm-professional-${ var . jetbrains_ide_versions [" PY" ]. version } .tar.gz"
205
+ download_link = " ${ var . download_base_link } /python/pycharm-professional-${ var . jetbrains_ide_versions [" PY" ]. version } .tar.gz"
186
206
version = var.jetbrains_ide_versions[" PY" ].version
187
207
},
188
208
" CL" = {
189
209
icon = " /icon/clion.svg" ,
190
210
name = " CLion" ,
191
211
identifier = " CL" ,
192
212
build_number = var.jetbrains_ide_versions[" CL" ].build_number,
193
- download_link = " https://download.jetbrains.com /cpp/CLion-${ var . jetbrains_ide_versions [" CL" ]. version } .tar.gz"
213
+ download_link = " ${ var . download_base_link } /cpp/CLion-${ var . jetbrains_ide_versions [" CL" ]. version } .tar.gz"
194
214
version = var.jetbrains_ide_versions[" CL" ].version
195
215
},
196
216
" PS" = {
197
217
icon = " /icon/phpstorm.svg" ,
198
218
name = " PhpStorm" ,
199
219
identifier = " PS" ,
200
220
build_number = var.jetbrains_ide_versions[" PS" ].build_number,
201
- download_link = " https://download.jetbrains.com /webide/PhpStorm-${ var . jetbrains_ide_versions [" PS" ]. version } .tar.gz"
221
+ download_link = " ${ var . download_base_link } /webide/PhpStorm-${ var . jetbrains_ide_versions [" PS" ]. version } .tar.gz"
202
222
version = var.jetbrains_ide_versions[" PS" ].version
203
223
},
204
224
" RM" = {
205
225
icon = " /icon/rubymine.svg" ,
206
226
name = " RubyMine" ,
207
227
identifier = " RM" ,
208
228
build_number = var.jetbrains_ide_versions[" RM" ].build_number,
209
- download_link = " https://download.jetbrains.com /ruby/RubyMine-${ var . jetbrains_ide_versions [" RM" ]. version } .tar.gz"
229
+ download_link = " ${ var . download_base_link } /ruby/RubyMine-${ var . jetbrains_ide_versions [" RM" ]. version } .tar.gz"
210
230
version = var.jetbrains_ide_versions[" RM" ].version
211
231
}
212
232
" RD" = {
213
233
icon = " /icon/rider.svg" ,
214
234
name = " Rider" ,
215
235
identifier = " RD" ,
216
236
build_number = var.jetbrains_ide_versions[" RD" ].build_number,
217
- download_link = " https://download.jetbrains.com /rider/JetBrains.Rider-${ var . jetbrains_ide_versions [" RD" ]. version } .tar.gz"
237
+ download_link = " ${ var . download_base_link } /rider/JetBrains.Rider-${ var . jetbrains_ide_versions [" RD" ]. version } .tar.gz"
218
238
version = var.jetbrains_ide_versions[" RD" ].version
219
239
}
220
240
}
0 commit comments