@@ -6,6 +6,8 @@ import com.coder.gateway.models.LoginModel
6
6
import com.coder.gateway.models.UriScheme
7
7
import com.coder.gateway.sdk.CoderCLIManager
8
8
import com.coder.gateway.sdk.CoderRestClientService
9
+ import com.coder.gateway.sdk.OS
10
+ import com.coder.gateway.sdk.getOS
9
11
import com.intellij.credentialStore.CredentialAttributes
10
12
import com.intellij.credentialStore.askPassword
11
13
import com.intellij.ide.IdeBundle
@@ -32,6 +34,7 @@ import kotlinx.coroutines.Dispatchers
32
34
import kotlinx.coroutines.cancel
33
35
import org.zeroturnaround.exec.ProcessExecutor
34
36
import java.net.URL
37
+ import java.util.logging.Logger
35
38
36
39
class CoderAuthStepView : CoderWorkspacesWizardStep , Disposable {
37
40
private val cs = CoroutineScope (Dispatchers .Main )
@@ -91,7 +94,7 @@ class CoderAuthStepView : CoderWorkspacesWizardStep, Disposable {
91
94
CoderGatewayBundle .message(" gateway.connector.view.login.credentials.dialog.title" ),
92
95
CoderGatewayBundle .message(" gateway.connector.view.login.password.label" ),
93
96
CredentialAttributes (" Coder" ),
94
- false
97
+ true
95
98
)
96
99
model.password = password
97
100
val authTask = object : Task .Modal (null , " Authenticate and setup coder" , false ) {
@@ -108,22 +111,29 @@ class CoderAuthStepView : CoderWorkspacesWizardStep, Disposable {
108
111
val url = URL (wizardModel.loginModel.uriScheme.toString().toLowerCase(), wizardModel.loginModel.host, wizardModel.loginModel.port, " " )
109
112
val cliManager = CoderCLIManager (URL (url.protocol, url.host, url.port, " " ))
110
113
val cli = cliManager.download() ? : throw IllegalStateException (" Could not download coder binary" )
111
-
114
+ if (getOS() != OS .WINDOWS ) {
115
+ pi.fraction = 0.5
116
+ val chmodOutput = ProcessExecutor ().command(" chmod" , " +x" , cli.toAbsolutePath().toString()).readOutput(true ).execute().outputUTF8()
117
+ logger.info(" chmod +x ${cli.toAbsolutePath()} $chmodOutput " )
118
+ }
112
119
pi.text = " Configuring coder cli..."
113
120
pi.fraction = 0.5
114
121
val loginOutput = ProcessExecutor ().command(cli.toAbsolutePath().toString(), " login" , url.toString(), " --token" , coderClient.sessionToken).readOutput(true ).execute().outputUTF8()
115
- CoderWorkspacesStepView . logger.info(" coder-cli login output: $loginOutput " )
122
+ logger.info(" coder-cli login output: $loginOutput " )
116
123
pi.fraction = 0.6
117
124
val sshConfigOutput = ProcessExecutor ().command(cli.toAbsolutePath().toString(), " config-ssh" ).readOutput(true ).execute().outputUTF8()
118
- CoderWorkspacesStepView . logger.info(" coder-cli config-ssh output: $sshConfigOutput " )
125
+ logger.info(" coder-cli config-ssh output: $sshConfigOutput " )
119
126
pi.fraction = 1.0
120
127
}
121
128
}
122
129
ProgressManager .getInstance().run (authTask)
123
130
}
124
131
125
-
126
132
override fun dispose () {
127
133
cs.cancel()
128
134
}
135
+
136
+ companion object {
137
+ val logger = Logger .getLogger(CoderAuthStepView ::class .java.simpleName)
138
+ }
129
139
}
0 commit comments