diff --git a/product.json b/product.json index 7b60eac641d..1868eed1b5b 100644 --- a/product.json +++ b/product.json @@ -6,6 +6,7 @@ "win32MutexName": "vscodeoss", "licenseName": "MIT", "licenseUrl": "https://github.com/microsoft/vscode/blob/main/LICENSE.txt", + "serverGreeting": [], "win32DirName": "Microsoft Code OSS", "win32NameVersion": "Microsoft Code OSS", "win32RegValueName": "CodeOSS", diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts index 1a557a41416..c48445934b8 100644 --- a/src/vs/base/common/product.ts +++ b/src/vs/base/common/product.ts @@ -118,6 +118,8 @@ export interface IProductConfiguration { readonly privacyStatementUrl?: string; readonly showTelemetryOptOut?: boolean; + readonly serverGreeting: string[]; + readonly npsSurveyUrl?: string; readonly cesSurveyUrl?: string; readonly surveys?: readonly ISurveyData[]; diff --git a/src/vs/server/main.js b/src/vs/server/main.js index 3e6b8d72907..7426c16dde7 100644 --- a/src/vs/server/main.js +++ b/src/vs/server/main.js @@ -7,6 +7,7 @@ const perf = require('../base/common/performance'); const performance = require('perf_hooks').performance; +const product = require('../../../product.json'); perf.mark('code/server/start'); // @ts-ignore @@ -89,7 +90,8 @@ function start() { : { host: parsedArgs['host'], port: parsePort(parsedArgs['port']) } ); server.listen(nodeListenOptions, async () => { - let output = ``; + const serverGreeting = product.serverGreeting.join('\n'); + let output = serverGreeting ? `\n\n${serverGreeting}\n\n` : ``; if (typeof nodeListenOptions.port === 'number' && parsedArgs['print-ip-address']) { const ifaces = os.networkInterfaces(); diff --git a/src/vs/server/remoteExtensionHostAgentServer.ts b/src/vs/server/remoteExtensionHostAgentServer.ts index f533969fbca..e80dcf40086 100644 --- a/src/vs/server/remoteExtensionHostAgentServer.ts +++ b/src/vs/server/remoteExtensionHostAgentServer.ts @@ -229,6 +229,10 @@ export class RemoteExtensionHostAgentServer extends Disposable { const logService = getOrCreateSpdLogService(this._environmentService); logService.trace(`Remote configuration data at ${REMOTE_DATA_FOLDER}`); logService.trace('process arguments:', this._environmentService.args); + const serverGreeting = product.serverGreeting.join('\n'); + if (serverGreeting) { + logService.info(`\n\n${serverGreeting}\n\n`); + } this._logService = new MultiplexLogService([new ServerLogService(getLogLevel(this._environmentService)), logService]); this._socketServer = new SocketServer();