From 781daedfd613aeedb21a32c4607942d05b6f9fae Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Tue, 14 Nov 2023 14:11:55 -0600 Subject: [PATCH] fix: check for versions greater than 2.3.3 for the log-dir flag This was a dumb mistake! --- src/remote.ts | 6 ++---- src/version.test.ts | 13 +++++++++++++ src/version.ts | 8 ++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/version.test.ts create mode 100644 src/version.ts diff --git a/src/remote.ts b/src/remote.ts index fb0a4e7b..5561aca3 100644 --- a/src/remote.ts +++ b/src/remote.ts @@ -24,6 +24,7 @@ import { getHeaderCommand } from "./headers" import { SSHConfig, SSHValues, defaultSSHConfigResponse, mergeSSHConfigValues } from "./sshConfig" import { computeSSHProperties, sshSupportsSetEnv } from "./sshSupport" import { Storage } from "./storage" +import { supportsCoderAgentLogDirFlag } from "./version" import { WorkspaceAction } from "./workspaceAction" export class Remote { @@ -76,10 +77,7 @@ export class Remote { await this.closeRemote() return } - // CLI versions before 2.3.3 don't support the --log-dir flag! - // If this check didn't exist, VS Code connections would fail on - // older versions because of an unknown CLI argument. - const hasCoderLogs = (parsedVersion?.compare("2.3.3") || 0) >= 0 || parsedVersion?.prerelease[0] === "devel" + const hasCoderLogs = supportsCoderAgentLogDirFlag(parsedVersion) // Find the workspace from the URI scheme provided! try { diff --git a/src/version.test.ts b/src/version.test.ts new file mode 100644 index 00000000..c9cc71e6 --- /dev/null +++ b/src/version.test.ts @@ -0,0 +1,13 @@ +import { parse } from "semver" +import { describe, expect, it } from "vitest" +import { supportsCoderAgentLogDirFlag } from "./version" + +describe("check version support", () => { + it("has logs", () => { + expect(supportsCoderAgentLogDirFlag(parse("v1.3.3+e491217"))).toBeFalsy() + expect(supportsCoderAgentLogDirFlag(parse("v2.3.3+e491217"))).toBeFalsy() + expect(supportsCoderAgentLogDirFlag(parse("v2.3.4+e491217"))).toBeTruthy() + expect(supportsCoderAgentLogDirFlag(parse("v5.3.4+e491217"))).toBeTruthy() + expect(supportsCoderAgentLogDirFlag(parse("v5.0.4+e491217"))).toBeTruthy() + }) +}) diff --git a/src/version.ts b/src/version.ts new file mode 100644 index 00000000..d4a2199b --- /dev/null +++ b/src/version.ts @@ -0,0 +1,8 @@ +import { SemVer } from "semver" + +// CLI versions before 2.3.3 don't support the --log-dir flag! +// If this check didn't exist, VS Code connections would fail on +// older versions because of an unknown CLI argument. +export const supportsCoderAgentLogDirFlag = (ver: SemVer | null): boolean => { + return (ver?.compare("2.3.3") || 0) > 0 || ver?.prerelease[0] === "devel" +}