Skip to content

Commit 8e20d82

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

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
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: 17 additions & 10 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,25 @@ 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+
return expandPath(String(vscode.workspace.getConfiguration().get("coder.proxyLogDirectory") ?? "").trim())
490+
}
491+
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> {
489497
if (!logDir) {
490498
return ""
491499
}
492-
493500
await fs.mkdir(logDir, { recursive: true })
494501
this.storage.writeToCoderOutputChannel(`SSH proxy diagnostics are being written to ${logDir}`)
495502
return ` --log-dir ${escape(logDir)}`
@@ -502,7 +509,7 @@ export class Remote {
502509
label: string,
503510
hostName: string,
504511
binaryPath: string,
505-
featureSet: FeatureSet,
512+
logDir: string,
506513
) {
507514
let deploymentSSHConfig = {}
508515
try {
@@ -585,7 +592,7 @@ export class Remote {
585592
Host: label ? `${AuthorityPrefix}.${label}--*` : `${AuthorityPrefix}--*`,
586593
ProxyCommand: `${escape(binaryPath)}${headerArg} vscodessh --network-info-dir ${escape(
587594
this.storage.getNetworkInfoPath(),
588-
)}${await this.formatLogArg(featureSet)} --session-token-file ${escape(this.storage.getSessionTokenPath(label))} --url-file ${escape(
595+
)}${await this.formatLogArg(logDir)} --session-token-file ${escape(this.storage.getSessionTokenPath(label))} --url-file ${escape(
589596
this.storage.getUrlPath(label),
590597
)} %h`,
591598
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