From 7ef744fcfd4111a9368a22aacc7ab79594144f57 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 15:06:23 -0500 Subject: [PATCH 01/25] add updater.ts file --- packages/server/src/updater.ts | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 packages/server/src/updater.ts diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts new file mode 100644 index 000000000000..826d146f42ca --- /dev/null +++ b/packages/server/src/updater.ts @@ -0,0 +1,58 @@ +import * as https from "https"; + +const compareVersions = (a: string, b: string): number | undefined => { + if (a === b) { + return 0; + } + const regEx = /[^0-9.]/g; + const aSplit = a.replace(regEx, "").split("."); + const bSplit = b.replace(regEx, "").split("."); + const dist = Math.max(aSplit.length, bSplit.length); + for (let i = 0; i < dist; i++) { + const aVal = parseInt(aSplit[i], 10); + const bVal = parseInt(bSplit[i], 10); + if (aVal > bVal || isNaN(bVal)) { + return 1; + } + if (aVal < bVal || isNaN(aVal)) { + return -1; + } + } +}; + +const getRecentRelease = (): Promise => { + return new Promise((resolve, rej) => { + const options = { + host: "api.github.com", + path: "/repos/codercom/code-server/releases", + method: "GET", + agent: false, + headers: { + "User-Agent": "test", + }, + }; + + https.get(options, function (res) { + if (res.statusCode !== 200) { + throw new Error("Failed to acquire release information"); + + return undefined; + } + let body = ""; + res.on("data", (chunk) => { + body += chunk; + }); + + res.on("end", () => { + let mostRecentRelease = ""; + let releases = JSON.parse(body); + releases.forEach((release: { name: string; }) => { + if (compareVersions(release.name, mostRecentRelease)! >= 1) { + mostRecentRelease = release.name; + } + }); + resolve(mostRecentRelease); + }); + }); + }); +}; From 3986f2eeeec14cf28d1d4566a01912ea961cf80a Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 15:30:44 -0500 Subject: [PATCH 02/25] Import getRecentRelease to cli --- packages/server/src/cli.ts | 5 +++++ packages/server/src/updater.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index e57a6af0d469..7011bcd9d9e1 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -8,6 +8,7 @@ import * as os from "os"; import * as path from "path"; import * as WebSocket from "ws"; import { buildDir, cacheHome, dataHome, isCli, serveStatic } from "./constants"; +import { getRecentRelease } from "./updater"; import { createApp } from "./server"; import { forkModule, requireModule } from "./vscode/bootstrapFork"; import { SharedProcess, SharedProcessState } from "./vscode/sharedProcess"; @@ -165,6 +166,10 @@ const bold = (text: string | number): string | number => { } } + if (process.env.VERSION !== "development") { + await getRecentRelease().then((release) => console.log(release)); + } + logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); if (options.dataDir) { diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 826d146f42ca..20f28d670363 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -20,7 +20,7 @@ const compareVersions = (a: string, b: string): number | undefined => { } }; -const getRecentRelease = (): Promise => { +export const getRecentRelease = (): Promise => { return new Promise((resolve, rej) => { const options = { host: "api.github.com", From 97db5c3e5a33f14b83b6431aed3c48afe8ffa309 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 16:09:27 -0500 Subject: [PATCH 03/25] Check for most recent version in CLI --- packages/server/src/cli.ts | 17 ++++++++++++++--- packages/server/src/updater.ts | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 7011bcd9d9e1..a468f9717ca6 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -166,10 +166,21 @@ const bold = (text: string | number): string | number => { } } - if (process.env.VERSION !== "development") { - await getRecentRelease().then((release) => console.log(release)); - } + let newestVersion = ""; + // TODO: remove bang + if (!process.env.VERSION) { + let currentVersion = process.env.VERSION; + const recentRelease = await getRecentRelease(); + + // TODO: replace string with currentVersion + if (compareVersions("1.31.0-20", recentRelease)! <= 1) { + newestVersion = recentRelease; + } else { + newestVersion = "1.31.0-20"; + } + } + logger.info(`Latest version is \u001B[1m${newestVersion}`); logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); if (options.dataDir) { diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 20f28d670363..7bdeff1a1972 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -1,6 +1,6 @@ import * as https from "https"; -const compareVersions = (a: string, b: string): number | undefined => { +export const compareVersions = (a: string, b: string): number | undefined => { if (a === b) { return 0; } From afbc8797a9da9ff4f9eecd57da4927a87fdfbeb2 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 16:17:37 -0500 Subject: [PATCH 04/25] remove return statement from status code check --- packages/server/src/updater.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 7bdeff1a1972..33899976e299 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -35,8 +35,6 @@ export const getRecentRelease = (): Promise => { https.get(options, function (res) { if (res.statusCode !== 200) { throw new Error("Failed to acquire release information"); - - return undefined; } let body = ""; res.on("data", (chunk) => { From 685c9a5aff579964e3e2359ebd7a59906cbf3ef9 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 16:24:37 -0500 Subject: [PATCH 05/25] Remove testing string --- packages/server/src/cli.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index a468f9717ca6..a57563a3e8e9 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -168,17 +168,19 @@ const bold = (text: string | number): string | number => { let newestVersion = ""; // TODO: remove bang - if (!process.env.VERSION) { + if (process.env.VERSION) { let currentVersion = process.env.VERSION; const recentRelease = await getRecentRelease(); // TODO: replace string with currentVersion - if (compareVersions("1.31.0-20", recentRelease)! <= 1) { + if (compareVersions(currentVersion, recentRelease)! <= 1) { newestVersion = recentRelease; } else { - newestVersion = "1.31.0-20"; + newestVersion = currentVersion; } - + } + if (newestVersion === process.env.VERSION){ + logger.info(`You are using the latest version: ${newestVersion}`); } logger.info(`Latest version is \u001B[1m${newestVersion}`); logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); From ceb1215ae1ed3d683eb58cc59d599cef997de0ef Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 16:32:11 -0500 Subject: [PATCH 06/25] Remove todos --- packages/server/src/cli.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index a57563a3e8e9..95b5fb89d3ab 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -167,12 +167,10 @@ const bold = (text: string | number): string | number => { } let newestVersion = ""; - // TODO: remove bang if (process.env.VERSION) { let currentVersion = process.env.VERSION; const recentRelease = await getRecentRelease(); - // TODO: replace string with currentVersion if (compareVersions(currentVersion, recentRelease)! <= 1) { newestVersion = recentRelease; } else { From cc7afc62c9db8a39b20461297b281902bc8f2151 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 17:25:05 -0500 Subject: [PATCH 07/25] Add proper user-agent, use /latest route, remove unecessary function calls --- packages/server/src/updater.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 33899976e299..7c39fa61e80d 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -24,11 +24,11 @@ export const getRecentRelease = (): Promise => { return new Promise((resolve, rej) => { const options = { host: "api.github.com", - path: "/repos/codercom/code-server/releases", + path: "/repos/codercom/code-server/releases/latest", method: "GET", agent: false, headers: { - "User-Agent": "test", + "User-Agent": "code-server", }, }; @@ -42,14 +42,8 @@ export const getRecentRelease = (): Promise => { }); res.on("end", () => { - let mostRecentRelease = ""; - let releases = JSON.parse(body); - releases.forEach((release: { name: string; }) => { - if (compareVersions(release.name, mostRecentRelease)! >= 1) { - mostRecentRelease = release.name; - } - }); - resolve(mostRecentRelease); + let release = JSON.parse(body); + resolve(release.name); }); }); }); From cf6dce254a0dccf7259a735f2caf53859dd57336 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 17:32:50 -0500 Subject: [PATCH 08/25] Use less redundant logger messages --- packages/server/src/cli.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 95b5fb89d3ab..13ae895b0e25 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -177,10 +177,11 @@ const bold = (text: string | number): string | number => { newestVersion = currentVersion; } } - if (newestVersion === process.env.VERSION){ + if (newestVersion === process.env.VERSION) { logger.info(`You are using the latest version: ${newestVersion}`); + } else { + logger.info(`New version (\u001B[1m${newestVersion}) available at https://github.com/codercom/code-server/releases`); } - logger.info(`Latest version is \u001B[1m${newestVersion}`); logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); if (options.dataDir) { From 2da6a662c618d51a1acdc55cc961e55d4b7bfded Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 27 Mar 2019 17:42:26 -0500 Subject: [PATCH 09/25] Check for develop env --- packages/server/src/cli.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 13ae895b0e25..3e6100cf2f89 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -177,8 +177,8 @@ const bold = (text: string | number): string | number => { newestVersion = currentVersion; } } - if (newestVersion === process.env.VERSION) { - logger.info(`You are using the latest version: ${newestVersion}`); + if (newestVersion === process.env.VERSION || newestVersion === "") { + logger.info("You are using the latest version"); } else { logger.info(`New version (\u001B[1m${newestVersion}) available at https://github.com/codercom/code-server/releases`); } From f6d4c218170376bf65c2b2ea879fd9828318cbe9 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 10:36:42 -0500 Subject: [PATCH 10/25] remove the word at --- packages/server/src/cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 3e6100cf2f89..79bbdfd5881b 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -180,7 +180,7 @@ const bold = (text: string | number): string | number => { if (newestVersion === process.env.VERSION || newestVersion === "") { logger.info("You are using the latest version"); } else { - logger.info(`New version (\u001B[1m${newestVersion}) available at https://github.com/codercom/code-server/releases`); + logger.info(`New version (\u001B[1m${newestVersion}) available https://github.com/codercom/code-server/releases`); } logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); From 69fd487564f153ac31b32187c972aac1260b529d Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 11:29:31 -0500 Subject: [PATCH 11/25] remove non-arrow function --- packages/server/src/updater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 7c39fa61e80d..b77faed9d7bb 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -32,7 +32,7 @@ export const getRecentRelease = (): Promise => { }, }; - https.get(options, function (res) { + https.get(options, (res) => { if (res.statusCode !== 200) { throw new Error("Failed to acquire release information"); } From 61e5ea32ab38650a5a8c95875c40b35c2dc25d86 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 11:37:41 -0500 Subject: [PATCH 12/25] Add typedef for resolve --- packages/server/src/updater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index b77faed9d7bb..8e5c025d4d3b 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -21,7 +21,7 @@ export const compareVersions = (a: string, b: string): number | undefined => { }; export const getRecentRelease = (): Promise => { - return new Promise((resolve, rej) => { + return new Promise((resolve):void => { const options = { host: "api.github.com", path: "/repos/codercom/code-server/releases/latest", From 93e3ea0d3296562044dfd2e0657ae6c5da80e042 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 12:55:09 -0500 Subject: [PATCH 13/25] fix error in promise --- packages/server/src/updater.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 8e5c025d4d3b..11ed6f2f35ff 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -21,7 +21,7 @@ export const compareVersions = (a: string, b: string): number | undefined => { }; export const getRecentRelease = (): Promise => { - return new Promise((resolve):void => { + return new Promise((resolve, rej):void => { const options = { host: "api.github.com", path: "/repos/codercom/code-server/releases/latest", @@ -34,7 +34,7 @@ export const getRecentRelease = (): Promise => { https.get(options, (res) => { if (res.statusCode !== 200) { - throw new Error("Failed to acquire release information"); + rej(Error("Failed to acquire release information")); } let body = ""; res.on("data", (chunk) => { From e19e5aeea8a8b0373381de0fb0a147fd50ee4f5b Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 13:18:41 -0500 Subject: [PATCH 14/25] Add isDev variable for version check --- packages/server/src/cli.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 79bbdfd5881b..30c10d0f11f5 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -177,10 +177,11 @@ const bold = (text: string | number): string | number => { newestVersion = currentVersion; } } - if (newestVersion === process.env.VERSION || newestVersion === "") { + const isDev = process.env.NODE_ENV !== "production"; + if (newestVersion === process.env.VERSION || isDev) { logger.info("You are using the latest version"); } else { - logger.info(`New version (\u001B[1m${newestVersion}) available https://github.com/codercom/code-server/releases`); + logger.warn(`New version (\u001B[1m${newestVersion}) available https://github.com/codercom/code-server/releases`); } logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); From 293538d700e884aa1758fb29385bb64bd928f0c9 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 13:19:54 -0500 Subject: [PATCH 15/25] Add isDev variable for version check, change promise return value to string --- packages/server/src/updater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 11ed6f2f35ff..67195c80ffa5 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -20,7 +20,7 @@ export const compareVersions = (a: string, b: string): number | undefined => { } }; -export const getRecentRelease = (): Promise => { +export const getRecentRelease = (): Promise => { return new Promise((resolve, rej):void => { const options = { host: "api.github.com", From e82604fc1e22b3c9e36c5ced95d41df48b7adee7 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 15:05:28 -0500 Subject: [PATCH 16/25] Remove compareVersions call, simplify version checking --- packages/server/src/cli.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 30c10d0f11f5..586122354e7e 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -166,15 +166,12 @@ const bold = (text: string | number): string | number => { } } - let newestVersion = ""; - if (process.env.VERSION) { + if (isCli) { let currentVersion = process.env.VERSION; const recentRelease = await getRecentRelease(); - if (compareVersions(currentVersion, recentRelease)! <= 1) { - newestVersion = recentRelease; - } else { - newestVersion = currentVersion; + if (recentRelease !== currentVersion) { + logger.warn(`New version (\u001B[1m${recentRelease}\u001B[0m) available https://github.com/codercom/code-server/releases/latest`); } } const isDev = process.env.NODE_ENV !== "production"; @@ -210,6 +207,7 @@ const bold = (text: string | number): string | number => { } // TODO: fill in appropriate doc url + logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); logger.info("Additional documentation: http://github.com/codercom/code-server"); logger.info("Initializing", field("data-dir", dataDir), field("extensions-dir", extensionsDir), field("working-dir", workingDir), field("log-dir", logDir)); const sharedProcess = new SharedProcess(dataDir, extensionsDir, builtInExtensionsDir); From 27fabef20b0e87e26ddd8d7f7994f1663710a21b Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 15:06:42 -0500 Subject: [PATCH 17/25] rename rej to reject --- packages/server/src/updater.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 67195c80ffa5..5b49d0808ece 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -21,7 +21,7 @@ export const compareVersions = (a: string, b: string): number | undefined => { }; export const getRecentRelease = (): Promise => { - return new Promise((resolve, rej):void => { + return new Promise((resolve, reject):void => { const options = { host: "api.github.com", path: "/repos/codercom/code-server/releases/latest", @@ -34,7 +34,7 @@ export const getRecentRelease = (): Promise => { https.get(options, (res) => { if (res.statusCode !== 200) { - rej(Error("Failed to acquire release information")); + reject(Error("Failed to acquire release information")); } let body = ""; res.on("data", (chunk) => { From c0c3599cf540cf246b095bf2f5077adbe1ccbcaa Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 15:26:52 -0500 Subject: [PATCH 18/25] Move request options object into the options parameter, rename rej --- packages/server/src/updater.ts | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 5b49d0808ece..83a4ba3870cb 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -1,28 +1,8 @@ import * as https from "https"; -export const compareVersions = (a: string, b: string): number | undefined => { - if (a === b) { - return 0; - } - const regEx = /[^0-9.]/g; - const aSplit = a.replace(regEx, "").split("."); - const bSplit = b.replace(regEx, "").split("."); - const dist = Math.max(aSplit.length, bSplit.length); - for (let i = 0; i < dist; i++) { - const aVal = parseInt(aSplit[i], 10); - const bVal = parseInt(bSplit[i], 10); - if (aVal > bVal || isNaN(bVal)) { - return 1; - } - if (aVal < bVal || isNaN(aVal)) { - return -1; - } - } -}; - export const getRecentRelease = (): Promise => { return new Promise((resolve, reject):void => { - const options = { + https.get({ host: "api.github.com", path: "/repos/codercom/code-server/releases/latest", method: "GET", @@ -30,9 +10,7 @@ export const getRecentRelease = (): Promise => { headers: { "User-Agent": "code-server", }, - }; - - https.get(options, (res) => { + }, (res) => { if (res.statusCode !== 200) { reject(Error("Failed to acquire release information")); } From 3dd6062ceb21015b12166ea65a74def1178da114 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 28 Mar 2019 15:40:35 -0500 Subject: [PATCH 19/25] Remove unneeded import, handle error for version check --- packages/server/src/cli.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 586122354e7e..d08e8d7f3ae2 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -168,10 +168,13 @@ const bold = (text: string | number): string | number => { if (isCli) { let currentVersion = process.env.VERSION; - const recentRelease = await getRecentRelease(); - - if (recentRelease !== currentVersion) { - logger.warn(`New version (\u001B[1m${recentRelease}\u001B[0m) available https://github.com/codercom/code-server/releases/latest`); + try { + const recentRelease = await getRecentRelease(); + if (recentRelease !== currentVersion) { + logger.warn(`New version (\u001B[1m${recentRelease}\u001B[0m) available https://github.com/codercom/code-server/releases/latest`); + } + } catch (err) { + logger.error(`Failed to check latest release: ${err}`); } } const isDev = process.env.NODE_ENV !== "production"; From 9251310dd8431521fbf6ce72b7e8f35e86d69476 Mon Sep 17 00:00:00 2001 From: Sergio Moura Date: Fri, 29 Mar 2019 11:04:55 -0500 Subject: [PATCH 20/25] Update packages/server/src/cli.ts Co-Authored-By: nol166 --- packages/server/src/cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index d08e8d7f3ae2..c54adfdd574a 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -167,7 +167,7 @@ const bold = (text: string | number): string | number => { } if (isCli) { - let currentVersion = process.env.VERSION; + const currentVersion = process.env.VERSION; try { const recentRelease = await getRecentRelease(); if (recentRelease !== currentVersion) { From 248a9f515b945471ada6faa9d07ec29fe23e679b Mon Sep 17 00:00:00 2001 From: Sergio Moura Date: Fri, 29 Mar 2019 11:05:04 -0500 Subject: [PATCH 21/25] Update packages/server/src/updater.ts Co-Authored-By: nol166 --- packages/server/src/updater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 83a4ba3870cb..2b9dd9adecd2 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -20,7 +20,7 @@ export const getRecentRelease = (): Promise => { }); res.on("end", () => { - let release = JSON.parse(body); + const release = JSON.parse(body); resolve(release.name); }); }); From 7632fe347d7318a36fadb45d87de47a7371d8017 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Fri, 29 Mar 2019 13:44:29 -0500 Subject: [PATCH 22/25] Clean up new message text, remove TODO --- packages/server/src/cli.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index c54adfdd574a..4df7df6db56d 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -171,7 +171,7 @@ const bold = (text: string | number): string | number => { try { const recentRelease = await getRecentRelease(); if (recentRelease !== currentVersion) { - logger.warn(`New version (\u001B[1m${recentRelease}\u001B[0m) available https://github.com/codercom/code-server/releases/latest`); + logger.warn(`New version available! (\u001B[1m${recentRelease}\u001B[0m) https://github.com/codercom/code-server/releases/latest`); } } catch (err) { logger.error(`Failed to check latest release: ${err}`); @@ -305,7 +305,6 @@ const bold = (text: string | number): string | number => { }); if (!options.certKey && !options.cert) { logger.warn("No certificate specified. \u001B[1mThis could be insecure."); - // TODO: fill in appropriate doc url logger.warn("Documentation on securing your setup: https://github.com/codercom/code-server/blob/master/doc/security/ssl.md"); } From 4ebba8ef0a2b643508cc849ec4226bdceec5e2e7 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 3 Apr 2019 16:19:26 -0500 Subject: [PATCH 23/25] Add try/catch for parsing JSON in updater.ts --- packages/server/src/updater.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index 2b9dd9adecd2..af5a7623fede 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -20,8 +20,12 @@ export const getRecentRelease = (): Promise => { }); res.on("end", () => { - const release = JSON.parse(body); - resolve(release.name); + try { + const release = JSON.parse(body); + resolve(release.name); + } catch (err) { + reject(err); + } }); }); }); From 27d9dd55da2dde00c5b33c70be48ea12c9a54893 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 18:13:28 -0500 Subject: [PATCH 24/25] src/cli.ts --- packages/server/src/cli.ts | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/packages/server/src/cli.ts b/packages/server/src/cli.ts index 4df7df6db56d..7486ebad9c78 100644 --- a/packages/server/src/cli.ts +++ b/packages/server/src/cli.ts @@ -166,25 +166,6 @@ const bold = (text: string | number): string | number => { } } - if (isCli) { - const currentVersion = process.env.VERSION; - try { - const recentRelease = await getRecentRelease(); - if (recentRelease !== currentVersion) { - logger.warn(`New version available! (\u001B[1m${recentRelease}\u001B[0m) https://github.com/codercom/code-server/releases/latest`); - } - } catch (err) { - logger.error(`Failed to check latest release: ${err}`); - } - } - const isDev = process.env.NODE_ENV !== "production"; - if (newestVersion === process.env.VERSION || isDev) { - logger.info("You are using the latest version"); - } else { - logger.warn(`New version (\u001B[1m${newestVersion}) available https://github.com/codercom/code-server/releases`); - } - logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); - if (options.dataDir) { logger.warn('"--data-dir" is deprecated. Use "--user-data-dir" instead.'); } @@ -209,7 +190,18 @@ const bold = (text: string | number): string | number => { return; } - // TODO: fill in appropriate doc url + if (isCli) { + const currentVersion = process.env.VERSION; + try { + const recentRelease = await getRecentRelease(); + if (recentRelease !== currentVersion) { + logger.warn(`New version available! (\u001B[1m${recentRelease}\u001B[0m) https://github.com/codercom/code-server/releases/latest`); + } + } catch (err) { + logger.error(`Failed to check latest release: ${err}`); + } + } + logger.info(`\u001B[1mcode-server ${process.env.VERSION ? `v${process.env.VERSION}` : "development"}`); logger.info("Additional documentation: http://github.com/codercom/code-server"); logger.info("Initializing", field("data-dir", dataDir), field("extensions-dir", extensionsDir), field("working-dir", workingDir), field("log-dir", logDir)); From a23d9062ce2d9014bc0436efe8fb2a699e7b3c4b Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Mon, 29 Apr 2019 10:16:53 -0500 Subject: [PATCH 25/25] Update organization name --- packages/server/src/updater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/updater.ts b/packages/server/src/updater.ts index af5a7623fede..c2490b349e20 100644 --- a/packages/server/src/updater.ts +++ b/packages/server/src/updater.ts @@ -4,7 +4,7 @@ export const getRecentRelease = (): Promise => { return new Promise((resolve, reject):void => { https.get({ host: "api.github.com", - path: "/repos/codercom/code-server/releases/latest", + path: "/repos/cdr/code-server/releases/latest", method: "GET", agent: false, headers: {