@@ -216,6 +216,7 @@ type Task struct {
216
216
var JetbrainsCode map [string ]string
217
217
218
218
func init () {
219
+ JetbrainsCode = make (map [string ]string )
219
220
JetbrainsCode ["intellij" ] = "IIU"
220
221
JetbrainsCode ["goland" ] = "GO"
221
222
JetbrainsCode ["pycharm" ] = "PCP"
@@ -372,65 +373,74 @@ func (s *IDEServiceServer) ResolveWorkspaceConfig(ctx context.Context, req *api.
372
373
373
374
jbGW , ok := s .ideConfig .IdeOptions .Clients ["jetbrains-gateway" ]
374
375
if ok {
376
+ warmUpTask := ""
375
377
for _ , alias := range jbGW .DesktopIDEs {
376
378
prebuilds := getPrebuilds (wsConfig , alias )
377
- warmUpTask := ""
378
379
if prebuilds != nil {
379
- if prebuilds .Version == "latest" {
380
- warmUpTask += `
381
- echo 'warming up stable release of ${key}...'
382
- echo 'downloading stable ${key} backend...'
383
- mkdir /tmp/backend
384
- curl -sSLo /tmp/backend/backend.tar.gz "https://download.jetbrains.com/product?type=release&distribution=linux&code=${productCode}"
385
- tar -xf /tmp/backend/backend.tar.gz --strip-components=1 --directory /tmp/backend
386
-
387
- echo 'configuring JB system config and caches aligned with runtime...'
388
- printf '\nshared.indexes.download.auto.consent=true' >> "/tmp/backend/bin/idea.properties"
389
- unset JAVA_TOOL_OPTIONS
390
- export IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains
391
- export IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains
392
-
393
- echo 'running stable ${key} backend in warmup mode...'
394
- /tmp/backend/bin/remote-dev-server.sh warmup "$GITPOD_REPO_ROOT"
395
-
396
- echo 'removing stable ${key} backend...'
397
- rm -rf /tmp/backend
398
- `
380
+ if prebuilds .Version != "latest" {
381
+ template := `
382
+ echo 'warming up stable release of ${key}...'
383
+ echo 'downloading stable ${key} backend...'
384
+ mkdir /tmp/backend
385
+ curl -sSLo /tmp/backend/backend.tar.gz "https://download.jetbrains.com/product?type=release&distribution=linux&code=${productCode}"
386
+ tar -xf /tmp/backend/backend.tar.gz --strip-components=1 --directory /tmp/backend
387
+
388
+ echo 'configuring JB system config and caches aligned with runtime...'
389
+ printf '\nshared.indexes.download.auto.consent=true' >> "/tmp/backend/bin/idea.properties"
390
+ unset JAVA_TOOL_OPTIONS
391
+ export IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains
392
+ export IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains
393
+
394
+ echo 'running stable ${key} backend in warmup mode...'
395
+ /tmp/backend/bin/remote-dev-server.sh warmup "$GITPOD_REPO_ROOT"
396
+
397
+ echo 'removing stable ${key} backend...'
398
+ rm -rf /tmp/backend
399
+ `
400
+ if code , ok := JetbrainsCode [alias ]; ok {
401
+ template = strings .ReplaceAll (template , "${key}" , alias )
402
+ template = strings .ReplaceAll (template , "${productCode}" , code )
403
+ warmUpTask += template
404
+ }
399
405
}
400
406
401
- if prebuilds .Version == "stable" {
402
- warmUpTask += `
403
- echo 'warming up latest release of ${key}...'
404
- echo 'downloading latest ${key} backend...'
405
- mkdir /tmp/backend-latest
406
- curl -sSLo /tmp/backend-latest/backend-latest.tar.gz "https://download.jetbrains.com/product?type=release,eap,rc&distribution=linux&code=${productCode}"
407
- tar -xf /tmp/backend-latest/backend-latest.tar.gz --strip-components=1 --directory /tmp/backend-latest
408
-
409
- echo 'configuring JB system config and caches aligned with runtime...'
410
- printf '\nshared.indexes.download.auto.consent=true' >> "/tmp/backend-latest/bin/idea.properties"
411
- unset JAVA_TOOL_OPTIONS
412
- export IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains-latest
413
- export IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains-latest
414
-
415
- echo 'running ${key} backend in warmup mode...'
416
- /tmp/backend-latest/bin/remote-dev-server.sh warmup "$GITPOD_REPO_ROOT"
417
-
418
- echo 'removing latest ${key} backend...'
419
- rm -rf /tmp/backend-latest
420
- `
407
+ if prebuilds .Version != "stable" {
408
+ template := `
409
+ echo 'warming up latest release of ${key}...'
410
+ echo 'downloading latest ${key} backend...'
411
+ mkdir /tmp/backend-latest
412
+ curl -sSLo /tmp/backend-latest/backend-latest.tar.gz "https://download.jetbrains.com/product?type=release,eap,rc&distribution=linux&code=${productCode}"
413
+ tar -xf /tmp/backend-latest/backend-latest.tar.gz --strip-components=1 --directory /tmp/backend-latest
414
+
415
+ echo 'configuring JB system config and caches aligned with runtime...'
416
+ printf '\nshared.indexes.download.auto.consent=true' >> "/tmp/backend-latest/bin/idea.properties"
417
+ unset JAVA_TOOL_OPTIONS
418
+ export IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains-latest
419
+ export IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains-latest
420
+
421
+ echo 'running ${key} backend in warmup mode...'
422
+ /tmp/backend-latest/bin/remote-dev-server.sh warmup "$GITPOD_REPO_ROOT"
423
+
424
+ echo 'removing latest ${key} backend...'
425
+ rm -rf /tmp/backend-latest
426
+ `
427
+ if code , ok := JetbrainsCode [alias ]; ok {
428
+ template = strings .ReplaceAll (template , "${key}" , alias )
429
+ template = strings .ReplaceAll (template , "${productCode}" , code )
430
+ warmUpTask += template
431
+ }
421
432
}
422
433
}
423
-
424
- if warmUpTask != "" {
425
- warmUpEncoded , err := json .Marshal (Task {
426
- Init : strings .TrimSpace (warmUpTask ),
427
- })
428
- if err != nil {
429
- log .WithError (err ).Error ("cannot marshal warm up task" )
430
- }
431
-
432
- resp .Tasks = string (warmUpEncoded )
434
+ }
435
+ if warmUpTask != "" {
436
+ warmUpEncoded , err := json .Marshal ([]Task {{
437
+ Init : strings .TrimSpace (warmUpTask ),
438
+ }})
439
+ if err != nil {
440
+ log .WithError (err ).Error ("cannot marshal warm up task" )
433
441
}
442
+
443
+ resp .Tasks = string (warmUpEncoded )
434
444
}
435
445
}
436
446
return
0 commit comments