From 1dad0126bcfdb11d1beb32ade7f5f40d293ce631 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Thu, 8 Jun 2023 08:08:24 -0700 Subject: [PATCH] postbeta --- server/package-lock.json | 4 ++-- server/package.json | 2 +- server/src/plugin/plugin-host.ts | 1 + server/src/plugin/plugin-remote-worker.ts | 1 + server/src/plugin/runtime/python-worker.ts | 10 ++++++++-- server/src/plugin/runtime/runtime-worker.ts | 1 + 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index 4911f1b02..d8965070d 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/server", - "version": "0.34.0", + "version": "0.35.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scrypted/server", - "version": "0.34.0", + "version": "0.35.0", "license": "ISC", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.10", diff --git a/server/package.json b/server/package.json index f15d6ab2b..6cbbd9a40 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/server", - "version": "0.35.0", + "version": "0.36.0", "description": "", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.10", diff --git a/server/src/plugin/plugin-host.ts b/server/src/plugin/plugin-host.ts index e39377c6b..8ddd8b1b9 100644 --- a/server/src/plugin/plugin-host.ts +++ b/server/src/plugin/plugin-host.ts @@ -300,6 +300,7 @@ export class PluginHost { throw new Error(`Unsupported Scrypted runtime: ${this.packageJson.scrypted.runtime}`); this.worker = workerHost(this.scrypted.mainFilename, this.pluginId, { + packageJson: this.packageJson, env, pluginDebug, }); diff --git a/server/src/plugin/plugin-remote-worker.ts b/server/src/plugin/plugin-remote-worker.ts index d0ef3b2f2..19bc8238e 100644 --- a/server/src/plugin/plugin-remote-worker.ts +++ b/server/src/plugin/plugin-remote-worker.ts @@ -308,6 +308,7 @@ export function startPluginRemote(mainFilename: string, pluginId: string, peerSe scrypted.fork = () => { const ntw = new NodeThreadWorker(mainFilename, pluginId, { + packageJson, env: process.env, pluginDebug: undefined, }); diff --git a/server/src/plugin/runtime/python-worker.ts b/server/src/plugin/runtime/python-worker.ts index 3dbb9c08a..a1f779045 100644 --- a/server/src/plugin/runtime/python-worker.ts +++ b/server/src/plugin/runtime/python-worker.ts @@ -50,10 +50,16 @@ export class PythonRuntimeWorker extends ChildProcessWorker { } let pythonPath = process.env.SCRYPTED_PYTHON_PATH; + const pluginPythonVersion = options.packageJson.scrypted.pythonVersion?.[os.platform()]?.[os.arch()] || options.packageJson.scrypted.pythonVersion?.default; + if (os.platform() === 'win32') { pythonPath ||= 'py.exe'; - if (process.env.SCRYPTED_WINDOWS_PYTHON_VERSION) - args.unshift(process.env.SCRYPTED_WINDOWS_PYTHON_VERSION) + const windowsPythonVersion = pluginPythonVersion || process.env.SCRYPTED_WINDOWS_PYTHON_VERSION; + if (windowsPythonVersion) + args.unshift(windowsPythonVersion) + } + else if (pluginPythonVersion) { + pythonPath = `python${pluginPythonVersion}`; } else { pythonPath ||= 'python3'; diff --git a/server/src/plugin/runtime/runtime-worker.ts b/server/src/plugin/runtime/runtime-worker.ts index 72127dc6b..4f8032e18 100644 --- a/server/src/plugin/runtime/runtime-worker.ts +++ b/server/src/plugin/runtime/runtime-worker.ts @@ -4,6 +4,7 @@ import { Readable } from "stream"; import net from "net"; export interface RuntimeWorkerOptions { + packageJson: any; pluginDebug: PluginDebug; env: any; }