Skip to content

Commit b0a965f

Browse files
committed
Fix the open log command
The command was opening the old log path.
1 parent 70eb79b commit b0a965f

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

src/commands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ export class Commands {
266266
*/
267267
public async viewLogs(): Promise<void> {
268268
if (!this.workspaceLogPath) {
269-
vscode.window.showInformationMessage("No logs available.", this.workspaceLogPath || "<unset>")
269+
vscode.window.showInformationMessage("No logs available. Make sure to set coder.proxyLogDirectory to get logs.", this.workspaceLogPath || "<unset>")
270270
return
271271
}
272272
const uri = vscode.Uri.file(this.workspaceLogPath)

src/remote.ts

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -430,14 +430,16 @@ export class Remote {
430430
return
431431
}
432432

433+
const logDir = this.getLogDir(featureSet)
434+
433435
// This ensures the Remote SSH extension resolves the host to execute the
434436
// Coder binary properly.
435437
//
436438
// If we didn't write to the SSH config file, connecting would fail with
437439
// "Host not found".
438440
try {
439441
this.storage.writeToCoderOutputChannel("Updating SSH config...")
440-
await this.updateSSHConfig(workspaceRestClient, parts.label, parts.host, binaryPath, featureSet)
442+
await this.updateSSHConfig(workspaceRestClient, parts.label, parts.host, binaryPath, logDir)
441443
} catch (error) {
442444
this.storage.writeToCoderOutputChannel(`Failed to configure SSH: ${error}`)
443445
throw error
@@ -450,7 +452,7 @@ export class Remote {
450452
return
451453
}
452454
disposables.push(this.showNetworkUpdates(pid))
453-
this.commands.workspaceLogPath = path.join(this.storage.getLogPath(), `${pid}.log`)
455+
this.commands.workspaceLogPath = logDir ? path.join(logDir, `${pid}.log`) : undefined
454456
})
455457

456458
// Register the label formatter again because SSH overrides it!
@@ -476,20 +478,22 @@ export class Remote {
476478
}
477479

478480
/**
479-
* Format's the --log-dir argument for the ProxyCommand
481+
* Return the --log-dir argument value for the ProxyCommand. It may be an
482+
* empty string if the setting is not set or the cli does not support it.
480483
*/
481-
private async formatLogArg(featureSet: FeatureSet): Promise<string> {
484+
private getLogDir(featureSet: FeatureSet): string {
482485
if (!featureSet.proxyLogDirectory) {
483486
return ""
484487
}
485-
486488
// If the proxyLogDirectory is not set in the extension settings we don't send one.
487-
// Question for Asher: How do VSCode extension settings behave in terms of semver for the extension?
488-
const logDir = expandPath(String(vscode.workspace.getConfiguration().get("coder.proxyLogDirectory") ?? "").trim())
489-
if (!logDir) {
490-
return ""
491-
}
489+
return expandPath(String(vscode.workspace.getConfiguration().get("coder.proxyLogDirectory") ?? "").trim())
490+
}
492491

492+
/**
493+
* Formats the --log-dir argument for the ProxyCommand after making sure it
494+
* has been created.
495+
*/
496+
private async formatLogArg(logDir: string): Promise<string> {
493497
await fs.mkdir(logDir, { recursive: true })
494498
this.storage.writeToCoderOutputChannel(`SSH proxy diagnostics are being written to ${logDir}`)
495499
return ` --log-dir ${escape(logDir)}`
@@ -502,7 +506,7 @@ export class Remote {
502506
label: string,
503507
hostName: string,
504508
binaryPath: string,
505-
featureSet: FeatureSet,
509+
logDir: string,
506510
) {
507511
let deploymentSSHConfig = {}
508512
try {
@@ -585,7 +589,7 @@ export class Remote {
585589
Host: label ? `${AuthorityPrefix}.${label}--*` : `${AuthorityPrefix}--*`,
586590
ProxyCommand: `${escape(binaryPath)}${headerArg} vscodessh --network-info-dir ${escape(
587591
this.storage.getNetworkInfoPath(),
588-
)}${await this.formatLogArg(featureSet)} --session-token-file ${escape(this.storage.getSessionTokenPath(label))} --url-file ${escape(
592+
)}${await this.formatLogArg(logDir)} --session-token-file ${escape(this.storage.getSessionTokenPath(label))} --url-file ${escape(
589593
this.storage.getUrlPath(label),
590594
)} %h`,
591595
ConnectTimeout: "0",

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy