Skip to content

Commit 52cb659

Browse files
authored
Fix JetBrains backend plugin not up-to-date for prebuilds (#20123)
1 parent f640e29 commit 52cb659

File tree

1 file changed

+11
-7
lines changed
  • components/ide/jetbrains/launcher

1 file changed

+11
-7
lines changed

components/ide/jetbrains/launcher/main.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,22 +1172,26 @@ func linkRemotePlugin(launchCtx *LaunchContext) error {
11721172
remotePluginsFolder = launchCtx.backendDir + "/plugins"
11731173
}
11741174
remotePluginDir := remotePluginsFolder + "/gitpod-remote"
1175-
_, err := os.Stat(remotePluginDir)
1176-
if err == nil || !errors.Is(err, os.ErrNotExist) {
1177-
return nil
1178-
}
11791175
if err := os.MkdirAll(remotePluginsFolder, 0755); err != nil {
11801176
return err
11811177
}
11821178

11831179
// added for backwards compatibility, can be removed in the future
11841180
sourceDir := "/ide-desktop-plugins/gitpod-remote-" + os.Getenv("JETBRAINS_BACKEND_QUALIFIER")
1185-
_, err = os.Stat(sourceDir)
1181+
_, err := os.Stat(sourceDir)
11861182
if err == nil {
1187-
return os.Symlink(sourceDir, remotePluginDir)
1183+
return safeLink(sourceDir, remotePluginDir)
11881184
}
11891185

1190-
return os.Symlink("/ide-desktop-plugins/gitpod-remote", remotePluginDir)
1186+
return safeLink("/ide-desktop-plugins/gitpod-remote", remotePluginDir)
1187+
}
1188+
1189+
func safeLink(source, target string) error {
1190+
if _, err := os.Stat(target); err == nil {
1191+
// unlink the old symlink
1192+
_ = os.RemoveAll(target)
1193+
}
1194+
return os.Symlink(source, target)
11911195
}
11921196

11931197
// TODO(andreafalzetti): remove dir scanning once this is implemented https://youtrack.jetbrains.com/issue/GTW-2402/Rider-Open-Project-dialog-not-displaying-in-remote-dev

0 commit comments

Comments
 (0)