From d00ca20e54e20e05faa86674ef5933ebb3270add Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sat, 19 Mar 2022 10:52:02 -0700 Subject: [PATCH] server: note versions on all consoles --- server/package-lock.json | 4 ++-- server/package.json | 2 +- server/src/plugin/plugin-console.ts | 9 ++++++++- server/src/plugin/plugin-host.ts | 10 ++++------ server/src/scrypted-server-main.ts | 1 + 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index c5f8eb2a5..e17b45846 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/server", - "version": "0.0.158", + "version": "0.0.159", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/server", - "version": "0.0.158", + "version": "0.0.159", "license": "ISC", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.8", diff --git a/server/package.json b/server/package.json index 341d55506..808d906fc 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/server", - "version": "0.0.158", + "version": "0.0.159", "description": "", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.8", diff --git a/server/src/plugin/plugin-console.ts b/server/src/plugin/plugin-console.ts index 8512d1935..02ef850d5 100644 --- a/server/src/plugin/plugin-console.ts +++ b/server/src/plugin/plugin-console.ts @@ -20,9 +20,13 @@ export interface StdPassThroughs { buffers: Buffer[]; } -export async function createConsoleServer(remoteStdout: Readable, remoteStderr: Readable) { +export async function createConsoleServer(remoteStdout: Readable, remoteStderr: Readable, header: string) { const outputs = new Map(); + const addHeader = (pts: StdPassThroughs) => { + pts.buffers.push(Buffer.from(header)); + } + const getPassthroughs = (nativeId?: ScryptedNativeId) => { if (!nativeId) nativeId = undefined; @@ -49,6 +53,8 @@ export async function createConsoleServer(remoteStdout: Readable, remoteStderr: stdout.on('data', appendOutput); stderr.on('data', appendOutput); + + addHeader(pts); } return pts; @@ -132,6 +138,7 @@ export async function createConsoleServer(remoteStdout: Readable, remoteStderr: const pt = outputs.get(nativeId); if (pt) pt.buffers = []; + addHeader(pt); }, destroy() { for (const socket of sockets) { diff --git a/server/src/plugin/plugin-host.ts b/server/src/plugin/plugin-host.ts index 924e2f319..dcbb87592 100644 --- a/server/src/plugin/plugin-host.ts +++ b/server/src/plugin/plugin-host.ts @@ -25,6 +25,8 @@ import { PythonRuntimeWorker } from './runtime/python-worker'; import { NodeForkWorker } from './runtime/node-fork-worker'; import { NodeThreadWorker } from './runtime/node-thread-worker'; +const serverVersion = require('../../package.json').version; + export class PluginHost { worker: RuntimeWorker; peer: RpcPeer; @@ -283,12 +285,8 @@ export class PluginHost { this.worker.stdout.on('data', data => console.log(data.toString())); this.worker.stderr.on('data', data => console.error(data.toString())); - this.consoleServer = createConsoleServer(this.worker.stdout, this.worker.stderr); - - this.consoleServer.then(cs => { - const { pluginConsole } = cs; - pluginConsole.log('starting plugin', this.pluginId, this.packageJson.version); - }); + const consoleHeader = `server version: ${serverVersion}\nplugin version: ${this.pluginId} ${this.packageJson.version}\n`; + this.consoleServer = createConsoleServer(this.worker.stdout, this.worker.stderr, consoleHeader); const disconnect = () => { connected = false; diff --git a/server/src/scrypted-server-main.ts b/server/src/scrypted-server-main.ts index 6baddd4ba..8b462205f 100644 --- a/server/src/scrypted-server-main.ts +++ b/server/src/scrypted-server-main.ts @@ -32,6 +32,7 @@ if (!semver.gte(process.version, '16.0.0')) { process.on('unhandledRejection', error => { if (error?.constructor !== RPCResultError && error?.constructor !== PluginError) { + console.error('pending crash', error); throw error; } console.warn('unhandled rejection of RPC Result', error);