From cc18175ce3bde6da56f507a4fb66e6a1e5524f00 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Wed, 25 Nov 2020 11:37:40 -0500 Subject: [PATCH] cli: Add --disable-update-check flag Closes #2361 --- ci/dev/vscode.patch | 17 ++++++++++------- src/node/cli.ts | 7 +++++++ src/node/routes/vscode.ts | 1 + 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ci/dev/vscode.patch b/ci/dev/vscode.patch index 9e3f5d67..b88639c7 100644 --- a/ci/dev/vscode.patch +++ b/ci/dev/vscode.patch @@ -813,7 +813,7 @@ new file mode 100644 index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152ed407146 --- /dev/null +++ b/src/vs/server/browser/client.ts -@@ -0,0 +1,239 @@ +@@ -0,0 +1,241 @@ +import { Emitter } from 'vs/base/common/event'; +import { URI } from 'vs/base/common/uri'; +import { localize } from 'vs/nls'; @@ -967,7 +967,7 @@ index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152 + + const logService = (services.get(ILogService) as ILogService); + const storageService = (services.get(IStorageService) as IStorageService); -+ const updateCheckEndpoint = path.join(options.base, "/update/check") ++ const updateCheckEndpoint = path.join(options.base, "/update/check"); + const getUpdate = async (): Promise => { + logService.debug('Checking for update...'); + @@ -987,8 +987,8 @@ index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152 + + const lastNoti = storageService.getNumber('csLastUpdateNotification', StorageScope.GLOBAL); + if (lastNoti) { -+ // Only remind them again after two days. -+ const timeout = 1000*60*24*2; ++ // Only remind them again after 1 week. ++ const timeout = 1000*60*24*7; + const threshold = lastNoti + timeout; + if (Date.now() < threshold) { + return; @@ -1011,7 +1011,9 @@ index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152 + }); + }; + -+ updateLoop(); ++ if (!options.disableUpdateCheck) { ++ updateLoop(); ++ } + + // This will be used to set the background color while VS Code loads. + const theme = storageService.get('colorThemeData', StorageScope.GLOBAL); @@ -1448,14 +1450,15 @@ new file mode 100644 index 0000000000000000000000000000000000000000..0a4a91e5e36bda7f888feedda348aaff5fe32d27 --- /dev/null +++ b/src/vs/server/ipc.d.ts -@@ -0,0 +1,132 @@ +@@ -0,0 +1,133 @@ +/** + * External interfaces for integration into code-server over IPC. No vs imports + * should be made in this file. + */ +export interface Options { -+ disableTelemetry: boolean + base: string ++ disableTelemetry: boolean ++ disableUpdateCheck: boolean +} + +export interface InitMessage { diff --git a/src/node/cli.ts b/src/node/cli.ts index 23a6bc14..571f3958 100644 --- a/src/node/cli.ts +++ b/src/node/cli.ts @@ -33,6 +33,7 @@ export interface Args extends VsArgs { "cert-host"?: string "cert-key"?: string "disable-telemetry"?: boolean + "disable-update-check"?: boolean help?: boolean host?: string json?: boolean @@ -114,6 +115,12 @@ const options: Options> = { }, "cert-key": { type: "string", path: true, description: "Path to certificate key when using non-generated cert." }, "disable-telemetry": { type: "boolean", description: "Disable telemetry." }, + "disable-update-check": { + type: "boolean", + description: + "Disable update check. Without this flag, code-server checks every 6 hours against the latest github release and \n" + + "then notifies you once every week that a new release is available.", + }, help: { type: "boolean", short: "h", description: "Show this output." }, json: { type: "boolean" }, open: { type: "boolean", description: "Open in browser on startup. Does not work remotely." }, diff --git a/src/node/routes/vscode.ts b/src/node/routes/vscode.ts index 9b464f61..373dd4ce 100644 --- a/src/node/routes/vscode.ts +++ b/src/node/routes/vscode.ts @@ -42,6 +42,7 @@ router.get("/", async (req, res) => { commit !== "development" ? content.replace(//g, "") : content, { disableTelemetry: !!req.args["disable-telemetry"], + disableUpdateCheck: !!req.args["disable-update-check"], }, ) .replace(`"{{REMOTE_USER_DATA_URI}}"`, `'${JSON.stringify(options.remoteUserDataUri)}'`)