@@ -3,7 +3,9 @@ package com.coder.gateway.views.steps
3
3
import com.coder.gateway.CoderGatewayBundle
4
4
import com.coder.gateway.icons.CoderIcons
5
5
import com.coder.gateway.models.CoderWorkspacesWizardModel
6
+ import com.coder.gateway.sdk.Arch
6
7
import com.coder.gateway.sdk.CoderRestClientService
8
+ import com.coder.gateway.sdk.OS
7
9
import com.coder.gateway.views.LazyBrowserLink
8
10
import com.intellij.ide.IdeBundle
9
11
import com.intellij.openapi.Disposable
@@ -25,6 +27,9 @@ import com.intellij.util.ui.JBFont
25
27
import com.intellij.util.ui.UIUtil
26
28
import com.jetbrains.gateway.api.GatewayUI
27
29
import com.jetbrains.gateway.ssh.CachingProductsJsonWrapper
30
+ import com.jetbrains.gateway.ssh.DeployTargetOS
31
+ import com.jetbrains.gateway.ssh.DeployTargetOS.OSArch
32
+ import com.jetbrains.gateway.ssh.DeployTargetOS.OSKind
28
33
import com.jetbrains.gateway.ssh.IdeStatus
29
34
import com.jetbrains.gateway.ssh.IdeWithStatus
30
35
import com.jetbrains.gateway.ssh.IntelliJPlatformProduct
@@ -111,7 +116,7 @@ class CoderLocateRemoteProjectStepView(private val disableNextAction: () -> Unit
111
116
112
117
cs.launch {
113
118
logger.info(" Retrieving available IDE's for ${selectedWorkspace.name} workspace..." )
114
- val workspaceOS = withContext(Dispatchers .IO ) {
119
+ val workspaceOS = if (selectedWorkspace.agentOS != null && selectedWorkspace.agentArch != null ) toDeployedOS(selectedWorkspace.agentOS, selectedWorkspace.agentArch) else withContext(Dispatchers .IO ) {
115
120
try {
116
121
RemoteCredentialsHolder ().apply {
117
122
setHost(" coder.${selectedWorkspace.name} " )
@@ -149,6 +154,28 @@ class CoderLocateRemoteProjectStepView(private val disableNextAction: () -> Unit
149
154
}
150
155
}
151
156
157
+ private fun toDeployedOS (os : OS , arch : Arch ): DeployTargetOS {
158
+ return when (os) {
159
+ OS .LINUX -> when (arch) {
160
+ Arch .AMD64 -> DeployTargetOS (OSKind .Linux , OSArch .X86_64 )
161
+ Arch .ARM64 -> DeployTargetOS (OSKind .Linux , OSArch .Aarch64 )
162
+ Arch .ARMV7 -> DeployTargetOS (OSKind .Linux , OSArch .Unknown )
163
+ }
164
+
165
+ OS .WINDOWS -> when (arch) {
166
+ Arch .AMD64 -> DeployTargetOS (OSKind .Windows , OSArch .X86_64 )
167
+ Arch .ARM64 -> DeployTargetOS (OSKind .Windows , OSArch .Aarch64 )
168
+ Arch .ARMV7 -> DeployTargetOS (OSKind .Windows , OSArch .Unknown )
169
+ }
170
+
171
+ OS .MAC -> when (arch) {
172
+ Arch .AMD64 -> DeployTargetOS (OSKind .MacOs , OSArch .X86_64 )
173
+ Arch .ARM64 -> DeployTargetOS (OSKind .MacOs , OSArch .Aarch64 )
174
+ Arch .ARMV7 -> DeployTargetOS (OSKind .MacOs , OSArch .Unknown )
175
+ }
176
+ }
177
+ }
178
+
152
179
override fun onNext (wizardModel : CoderWorkspacesWizardModel ): Boolean {
153
180
val selectedIDE = cbIDE.selectedItem ? : return false
154
181
0 commit comments