cli: Add --disable-update-check flag

Closes #2361
This commit is contained in:
Anmol Sethi 2020-11-25 11:37:40 -05:00
parent 27f0f195a8
commit cc18175ce3
No known key found for this signature in database
GPG Key ID: 8CEF1878FF10ADEB
3 changed files with 18 additions and 7 deletions

View File

@ -813,7 +813,7 @@ new file mode 100644
index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152ed407146 index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152ed407146
--- /dev/null --- /dev/null
+++ b/src/vs/server/browser/client.ts +++ b/src/vs/server/browser/client.ts
@@ -0,0 +1,239 @@ @@ -0,0 +1,241 @@
+import { Emitter } from 'vs/base/common/event'; +import { Emitter } from 'vs/base/common/event';
+import { URI } from 'vs/base/common/uri'; +import { URI } from 'vs/base/common/uri';
+import { localize } from 'vs/nls'; +import { localize } from 'vs/nls';
@ -967,7 +967,7 @@ index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152
+ +
+ const logService = (services.get(ILogService) as ILogService); + const logService = (services.get(ILogService) as ILogService);
+ const storageService = (services.get(IStorageService) as IStorageService); + 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<void> => { + const getUpdate = async (): Promise<void> => {
+ logService.debug('Checking for update...'); + logService.debug('Checking for update...');
+ +
@ -987,8 +987,8 @@ index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152
+ +
+ const lastNoti = storageService.getNumber('csLastUpdateNotification', StorageScope.GLOBAL); + const lastNoti = storageService.getNumber('csLastUpdateNotification', StorageScope.GLOBAL);
+ if (lastNoti) { + if (lastNoti) {
+ // Only remind them again after two days. + // Only remind them again after 1 week.
+ const timeout = 1000*60*24*2; + const timeout = 1000*60*24*7;
+ const threshold = lastNoti + timeout; + const threshold = lastNoti + timeout;
+ if (Date.now() < threshold) { + if (Date.now() < threshold) {
+ return; + return;
@ -1011,7 +1011,9 @@ index 0000000000000000000000000000000000000000..ead6a3cd5e98fdde074f19ee5043f152
+ }); + });
+ }; + };
+ +
+ if (!options.disableUpdateCheck) {
+ updateLoop(); + updateLoop();
+ }
+ +
+ // This will be used to set the background color while VS Code loads. + // This will be used to set the background color while VS Code loads.
+ const theme = storageService.get('colorThemeData', StorageScope.GLOBAL); + const theme = storageService.get('colorThemeData', StorageScope.GLOBAL);
@ -1448,14 +1450,15 @@ new file mode 100644
index 0000000000000000000000000000000000000000..0a4a91e5e36bda7f888feedda348aaff5fe32d27 index 0000000000000000000000000000000000000000..0a4a91e5e36bda7f888feedda348aaff5fe32d27
--- /dev/null --- /dev/null
+++ b/src/vs/server/ipc.d.ts +++ 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 + * External interfaces for integration into code-server over IPC. No vs imports
+ * should be made in this file. + * should be made in this file.
+ */ + */
+export interface Options { +export interface Options {
+ disableTelemetry: boolean
+ base: string + base: string
+ disableTelemetry: boolean
+ disableUpdateCheck: boolean
+} +}
+ +
+export interface InitMessage { +export interface InitMessage {

View File

@ -33,6 +33,7 @@ export interface Args extends VsArgs {
"cert-host"?: string "cert-host"?: string
"cert-key"?: string "cert-key"?: string
"disable-telemetry"?: boolean "disable-telemetry"?: boolean
"disable-update-check"?: boolean
help?: boolean help?: boolean
host?: string host?: string
json?: boolean json?: boolean
@ -114,6 +115,12 @@ const options: Options<Required<Args>> = {
}, },
"cert-key": { type: "string", path: true, description: "Path to certificate key when using non-generated cert." }, "cert-key": { type: "string", path: true, description: "Path to certificate key when using non-generated cert." },
"disable-telemetry": { type: "boolean", description: "Disable telemetry." }, "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." }, help: { type: "boolean", short: "h", description: "Show this output." },
json: { type: "boolean" }, json: { type: "boolean" },
open: { type: "boolean", description: "Open in browser on startup. Does not work remotely." }, open: { type: "boolean", description: "Open in browser on startup. Does not work remotely." },

View File

@ -42,6 +42,7 @@ router.get("/", async (req, res) => {
commit !== "development" ? content.replace(/<!-- PROD_ONLY/g, "").replace(/END_PROD_ONLY -->/g, "") : content, commit !== "development" ? content.replace(/<!-- PROD_ONLY/g, "").replace(/END_PROD_ONLY -->/g, "") : content,
{ {
disableTelemetry: !!req.args["disable-telemetry"], disableTelemetry: !!req.args["disable-telemetry"],
disableUpdateCheck: !!req.args["disable-update-check"],
}, },
) )
.replace(`"{{REMOTE_USER_DATA_URI}}"`, `'${JSON.stringify(options.remoteUserDataUri)}'`) .replace(`"{{REMOTE_USER_DATA_URI}}"`, `'${JSON.stringify(options.remoteUserDataUri)}'`)