@scrypted/server 0.94.32 → 0.94.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,6 @@ import { createRpcDuplexSerializer } from '../../rpc-serializer';
|
|
5
5
|
import { ChildProcessWorker } from "./child-process-worker";
|
6
6
|
import { RuntimeWorkerOptions } from "./runtime-worker";
|
7
7
|
export declare class PythonRuntimeWorker extends ChildProcessWorker {
|
8
|
-
static pythonInstalls: Map<string, Promise<string>>;
|
9
8
|
serializer: ReturnType<typeof createRpcDuplexSerializer>;
|
10
9
|
peerin: Writable;
|
11
10
|
peerout: Readable;
|
@@ -12,6 +12,7 @@ const py_1 = require("py");
|
|
12
12
|
const stream_1 = require("stream");
|
13
13
|
const packaged_python_1 = require("../../../bin/packaged-python");
|
14
14
|
const rpc_serializer_1 = require("../../rpc-serializer");
|
15
|
+
const plugin_volume_1 = require("../plugin-volume");
|
15
16
|
const child_process_worker_1 = require("./child-process-worker");
|
16
17
|
class PythonRuntimeWorker extends child_process_worker_1.ChildProcessWorker {
|
17
18
|
static {
|
@@ -25,7 +26,6 @@ class PythonRuntimeWorker extends child_process_worker_1.ChildProcessWorker {
|
|
25
26
|
catch (e) {
|
26
27
|
}
|
27
28
|
}
|
28
|
-
static pythonInstalls = new Map();
|
29
29
|
serializer;
|
30
30
|
peerin;
|
31
31
|
peerout;
|
@@ -103,29 +103,31 @@ class PythonRuntimeWorker extends child_process_worker_1.ChildProcessWorker {
|
|
103
103
|
peerin.pipe(this.worker.stdio[3]);
|
104
104
|
this.worker.stdio[4].pipe(peerout);
|
105
105
|
};
|
106
|
-
const
|
106
|
+
const pyVersion = require('py/package.json').version;
|
107
|
+
const pyPath = path_1.default.join((0, plugin_volume_1.getPluginVolume)(pluginId), 'py');
|
108
|
+
const portableInstallPath = path_1.default.join(pyPath, pyVersion);
|
109
|
+
const py = new py_1.PortablePython(pluginPythonVersion, portableInstallPath);
|
107
110
|
if (fs_1.default.existsSync(py.executablePath)) {
|
108
111
|
pythonPath = py.executablePath;
|
109
112
|
finishSetup();
|
110
113
|
}
|
111
114
|
else {
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
this.
|
126
|
-
}
|
127
|
-
})
|
128
|
-
.finally(() => this.pythonInstallationComplete = true);
|
115
|
+
(async () => {
|
116
|
+
try {
|
117
|
+
this.pythonInstallationComplete = false;
|
118
|
+
await fs_1.default.promises.rm(pyPath, { recursive: true, force: true }).catch(() => { });
|
119
|
+
pythonPath = await (0, packaged_python_1.installScryptedServerRequirements)(pluginPythonVersion, portableInstallPath);
|
120
|
+
finishSetup();
|
121
|
+
}
|
122
|
+
catch (e) {
|
123
|
+
process.nextTick(() => {
|
124
|
+
this.emit('error', new Error('Failed to install portable python.'));
|
125
|
+
});
|
126
|
+
}
|
127
|
+
finally {
|
128
|
+
this.pythonInstallationComplete = true;
|
129
|
+
}
|
130
|
+
})();
|
129
131
|
}
|
130
132
|
}
|
131
133
|
else {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"python-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/python-worker.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAC1C,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,2BAAoC;AACpC,mCAAyD;AACzD,kEAAmH;AAEnH,yDAAiE;AACjE,iEAA4D;AAG5D,MAAa,mBAAoB,SAAQ,yCAAkB;IACvD;QACI,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,mBAAc,CAAC,yBAAqB,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;YACzC,oBAAoB;YACpB,IAAI,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,cAAc,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;QACX,CAAC;IACL,CAAC;IAED,
|
1
|
+
{"version":3,"file":"python-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/python-worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -7,6 +7,7 @@ import { PassThrough, Readable, Writable } from 'stream';
|
|
7
7
|
import { installScryptedServerRequirements, version as packagedPythonVersion } from '../../../bin/packaged-python';
|
8
8
|
import { RpcMessage, RpcPeer } from "../../rpc";
|
9
9
|
import { createRpcDuplexSerializer } from '../../rpc-serializer';
|
10
|
+
import { getPluginVolume } from '../plugin-volume';
|
10
11
|
import { ChildProcessWorker } from "./child-process-worker";
|
11
12
|
import { RuntimeWorkerOptions } from "./runtime-worker";
|
12
13
|
|
@@ -23,8 +24,6 @@ export class PythonRuntimeWorker extends ChildProcessWorker {
|
|
23
24
|
}
|
24
25
|
}
|
25
26
|
|
26
|
-
static pythonInstalls = new Map<string, Promise<string>>();
|
27
|
-
|
28
27
|
serializer: ReturnType<typeof createRpcDuplexSerializer>;
|
29
28
|
peerin: Writable;
|
30
29
|
peerout: Readable;
|
@@ -128,30 +127,32 @@ export class PythonRuntimeWorker extends ChildProcessWorker {
|
|
128
127
|
(this.worker.stdio[4] as Readable).pipe(peerout);
|
129
128
|
};
|
130
129
|
|
131
|
-
const
|
130
|
+
const pyVersion = require('py/package.json').version;
|
131
|
+
const pyPath = path.join(getPluginVolume(pluginId), 'py');
|
132
|
+
const portableInstallPath = path.join(pyPath, pyVersion);
|
133
|
+
|
134
|
+
const py = new PortablePython(pluginPythonVersion, portableInstallPath);
|
132
135
|
if (fs.existsSync(py.executablePath)) {
|
133
136
|
pythonPath = py.executablePath;
|
134
137
|
finishSetup();
|
135
138
|
}
|
136
139
|
else {
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
install.then(executablePath => {
|
146
|
-
pythonPath = executablePath;
|
147
|
-
finishSetup();
|
148
|
-
})
|
149
|
-
.catch(() => {
|
140
|
+
(async () => {
|
141
|
+
try {
|
142
|
+
this.pythonInstallationComplete = false;
|
143
|
+
await fs.promises.rm(pyPath, { recursive: true, force: true }).catch(() => { });
|
144
|
+
pythonPath = await installScryptedServerRequirements(pluginPythonVersion, portableInstallPath);
|
145
|
+
finishSetup();
|
146
|
+
}
|
147
|
+
catch (e) {
|
150
148
|
process.nextTick(() => {
|
151
149
|
this.emit('error', new Error('Failed to install portable python.'));
|
152
|
-
})
|
153
|
-
}
|
154
|
-
|
150
|
+
});
|
151
|
+
}
|
152
|
+
finally {
|
153
|
+
this.pythonInstallationComplete = true
|
154
|
+
}
|
155
|
+
})();
|
155
156
|
}
|
156
157
|
}
|
157
158
|
else {
|