Skip to content

Commit 8911df1

Browse files
authored
Use truncated version with signature fallback (#574)
Fixes #573
1 parent c26018f commit 8911df1

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/storage.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import fs from "fs/promises";
88
import { IncomingMessage } from "http";
99
import path from "path";
1010
import prettyBytes from "pretty-bytes";
11+
import * as semver from "semver";
1112
import * as vscode from "vscode";
1213
import { errToStr } from "./api-helper";
1314
import * as cli from "./cliManager";
@@ -139,6 +140,12 @@ export class Storage {
139140
// and to log for debugging.
140141
const buildInfo = await restClient.getBuildInfo();
141142
this.output.info("Got server version", buildInfo.version);
143+
const parsedVersion = semver.parse(buildInfo.version);
144+
if (!parsedVersion) {
145+
throw new Error(
146+
`Got invalid version from deployment: ${buildInfo.version}`,
147+
);
148+
}
142149

143150
// Check if there is an existing binary and whether it looks valid. If it
144151
// is valid and matches the server, or if it does not match the server but
@@ -230,9 +237,11 @@ export class Storage {
230237
// named exactly the same with an appended `.asc` (such as
231238
// coder-windows-amd64.exe.asc or coder-linux-amd64.asc).
232239
binSource + ".asc",
233-
// The releases.coder.com bucket does not include the leading "v".
234-
// The signature name follows the same rule as above.
235-
`https://releases.coder.com/coder-cli/${buildInfo.version.replace(/^v/, "")}/${binName}.asc`,
240+
// The releases.coder.com bucket does not include the leading "v",
241+
// and unlike what we get from buildinfo it uses a truncated version
242+
// with only major.minor.patch. The signature name follows the same
243+
// rule as above.
244+
`https://releases.coder.com/coder-cli/${parsedVersion.major}.${parsedVersion.minor}.${parsedVersion.patch}/${binName}.asc`,
236245
]);
237246
}
238247

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