diff --git a/server/package-lock.json b/server/package-lock.json index 9157d1a71..f2d0e96a1 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/server", - "version": "0.7.23", + "version": "0.7.24", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/server", - "version": "0.7.23", + "version": "0.7.24", "license": "ISC", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.10", diff --git a/server/python/plugin_remote.py b/server/python/plugin_remote.py index 76e70dfbf..6ab4ae27e 100644 --- a/server/python/plugin_remote.py +++ b/server/python/plugin_remote.py @@ -373,8 +373,14 @@ class PluginRemote: sys.version_info[0])+"."+str(sys.version_info[1]) print('python version:', python_version) + python_versioned_directory = '%s-%s-%s' % (python_version, platform.system(), platform.machine()) + SCRYPTED_BASE_VERSION = os.environ.get('SCRYPTED_BASE_VERSION') + if SCRYPTED_BASE_VERSION: + python_versioned_directory += SCRYPTED_BASE_VERSION + python_prefix = os.path.join( - plugin_volume, '%s-%s-%s' % (python_version, platform.system(), platform.machine())) + plugin_volume, python_versioned_directory) + if not os.path.exists(python_prefix): os.makedirs(python_prefix) diff --git a/server/src/plugin/plugin-npm-dependencies.ts b/server/src/plugin/plugin-npm-dependencies.ts index 211f3d74c..e9179bcdd 100644 --- a/server/src/plugin/plugin-npm-dependencies.ts +++ b/server/src/plugin/plugin-npm-dependencies.ts @@ -1,18 +1,22 @@ -import { ensurePluginVolume } from "./plugin-volume"; -import fs from 'fs'; import child_process from 'child_process'; -import path from 'path'; import { once } from 'events'; -import process from 'process'; +import fs from 'fs'; import mkdirp from "mkdirp"; -import semver from 'semver'; import os from 'os'; +import path from 'path'; +import process from 'process'; import rimraf from "rimraf"; +import semver from 'semver'; +import { ensurePluginVolume } from "./plugin-volume"; export function getPluginNodePath(name: string) { const pluginVolume = ensurePluginVolume(name); const nodeMajorVersion = semver.parse(process.version).major; - const nodePrefix = path.join(pluginVolume, `node${nodeMajorVersion}-${process.platform}-${process.arch}`); + let nodeVersionedDirectory = `node${nodeMajorVersion}-${process.platform}-${process.arch}`; + const scryptedBase = process.env.SCRYPTED_BASE_VERSION; + if (scryptedBase) + nodeVersionedDirectory += '-' + nodeVersionedDirectory; + const nodePrefix = path.join(pluginVolume, nodeVersionedDirectory); return nodePrefix; }