runpane 2.4.183 → 2.4.185
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.
- package/README.md +64 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +3 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +28 -0
- package/dist/commands.js.map +1 -1
- package/dist/docs-index.json +1 -1
- package/dist/generated/contract.d.ts +25 -13
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +44 -23
- package/dist/generated/contract.js.map +1 -1
- package/dist/update.d.ts +9 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +312 -0
- package/dist/update.js.map +1 -0
- package/dist/updateArtifacts.d.ts +12 -0
- package/dist/updateArtifacts.d.ts.map +1 -0
- package/dist/updateArtifacts.js +112 -0
- package/dist/updateArtifacts.js.map +1 -0
- package/dist/updateCapacity.d.ts +5 -0
- package/dist/updateCapacity.d.ts.map +1 -0
- package/dist/updateCapacity.js +72 -0
- package/dist/updateCapacity.js.map +1 -0
- package/dist/updateOperation.d.ts +48 -0
- package/dist/updateOperation.d.ts.map +1 -0
- package/dist/updateOperation.js +208 -0
- package/dist/updateOperation.js.map +1 -0
- package/dist/updatePackage.d.ts +14 -0
- package/dist/updatePackage.d.ts.map +1 -0
- package/dist/updatePackage.js +103 -0
- package/dist/updatePackage.js.map +1 -0
- package/dist/updatePreflight.d.ts +46 -0
- package/dist/updatePreflight.d.ts.map +1 -0
- package/dist/updatePreflight.js +134 -0
- package/dist/updatePreflight.js.map +1 -0
- package/dist/updatePython.d.ts +16 -0
- package/dist/updatePython.d.ts.map +1 -0
- package/dist/updatePython.js +46 -0
- package/dist/updatePython.js.map +1 -0
- package/dist/updateRuntime.d.ts +3 -0
- package/dist/updateRuntime.d.ts.map +1 -0
- package/dist/updateRuntime.js +61 -0
- package/dist/updateRuntime.js.map +1 -0
- package/dist/updateSupervisor.d.ts +13 -0
- package/dist/updateSupervisor.d.ts.map +1 -0
- package/dist/updateSupervisor.js +103 -0
- package/dist/updateSupervisor.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePreflight.js","sourceRoot":"","sources":["../src/updatePreflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function identifyPythonCli(python: string, expected: string): {
|
|
2
|
+
owner: "pip";
|
|
3
|
+
entrypoint: string;
|
|
4
|
+
prefix: string;
|
|
5
|
+
version: string;
|
|
6
|
+
packageManager: string;
|
|
7
|
+
pipUser: boolean;
|
|
8
|
+
};
|
|
9
|
+
export interface StagedPythonCli {
|
|
10
|
+
version: string;
|
|
11
|
+
archive: string;
|
|
12
|
+
packageRoot: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function stagePythonCli(python: string, requested: string, directory: string): StagedPythonCli;
|
|
15
|
+
export declare function installPythonCli(python: string, archive: string, user: boolean): void;
|
|
16
|
+
//# sourceMappingURL=updatePython.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePython.d.ts","sourceRoot":"","sources":["../src/updatePython.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;EAUjE;AAED,MAAM,WAAW,eAAe;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAC1F,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAepG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAErF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.identifyPythonCli = identifyPythonCli;
|
|
7
|
+
exports.stagePythonCli = stagePythonCli;
|
|
8
|
+
exports.installPythonCli = installPythonCli;
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const node_child_process_1 = require("node:child_process");
|
|
12
|
+
const boundaryDecoder_1 = require("./boundaryDecoder");
|
|
13
|
+
const errors_1 = require("./errors");
|
|
14
|
+
function identifyPythonCli(python, expected) {
|
|
15
|
+
const script = `import json,sys,site,os,runpane.cli,importlib.metadata as m
|
|
16
|
+
p=os.path.realpath(runpane.cli.__file__)
|
|
17
|
+
u=site.getusersitepackages()
|
|
18
|
+
print(json.dumps(dict(entrypoint=p,version=m.version('runpane'),prefix=os.path.dirname(os.path.dirname(p)),user=os.path.commonpath([p,u])==os.path.realpath(u),python=sys.executable)))`;
|
|
19
|
+
const result = (0, boundaryDecoder_1.decodeBoundary)(JSON.parse((0, node_child_process_1.execFileSync)(python, ['-c', script], { encoding: 'utf8', timeout: 15_000 })), boundaryDecoder_1.boundary.object({ entrypoint: boundaryDecoder_1.boundary.string, version: boundaryDecoder_1.boundary.string, prefix: boundaryDecoder_1.boundary.string, user: boundaryDecoder_1.boundary.boolean, python: boundaryDecoder_1.boundary.string }));
|
|
20
|
+
if (node_fs_1.default.realpathSync(result.entrypoint) !== node_fs_1.default.realpathSync(expected))
|
|
21
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_PIP_OWNER', 'The Python runtime resolved a different runpane package. Nothing was changed.', 'Invoke runpane from the Python environment that owns it.');
|
|
22
|
+
node_fs_1.default.accessSync(result.prefix, node_fs_1.default.constants.W_OK);
|
|
23
|
+
(0, node_child_process_1.execFileSync)(result.python, ['-m', 'pip', '--version'], { timeout: 15_000 });
|
|
24
|
+
return { owner: 'pip', entrypoint: result.entrypoint, prefix: result.prefix, version: result.version, packageManager: result.python, pipUser: result.user };
|
|
25
|
+
}
|
|
26
|
+
function stagePythonCli(python, requested, directory) {
|
|
27
|
+
node_fs_1.default.mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
28
|
+
(0, node_child_process_1.execFileSync)(python, ['-m', 'pip', 'download', '--disable-pip-version-check', '--no-deps', '--only-binary=:all:', '--dest', directory, requested === 'latest' ? 'runpane' : `runpane==${requested.replace(/^v/, '')}`], { timeout: 180_000, stdio: 'pipe' });
|
|
29
|
+
const wheels = node_fs_1.default.readdirSync(directory).filter(file => file.endsWith('.whl'));
|
|
30
|
+
if (wheels.length !== 1)
|
|
31
|
+
throw new Error('pip did not stage exactly one wheel.');
|
|
32
|
+
const archive = node_path_1.default.join(directory, wheels[0]);
|
|
33
|
+
const script = `import sys,zipfile,email,json
|
|
34
|
+
with zipfile.ZipFile(sys.argv[1]) as z:
|
|
35
|
+
names=[n for n in z.namelist() if n.endswith('.dist-info/METADATA')]
|
|
36
|
+
if len(names)!=1: raise ValueError('Invalid wheel metadata')
|
|
37
|
+
m=email.message_from_bytes(z.read(names[0]))
|
|
38
|
+
if m['Name']!='runpane': raise ValueError('Wrong wheel package')
|
|
39
|
+
print(json.dumps(dict(version=m['Version'])))`;
|
|
40
|
+
const metadata = (0, boundaryDecoder_1.decodeBoundary)(JSON.parse((0, node_child_process_1.execFileSync)(python, ['-c', script, archive], { encoding: 'utf8', timeout: 15_000 })), boundaryDecoder_1.boundary.object({ version: boundaryDecoder_1.boundary.nonEmptyString }));
|
|
41
|
+
return { version: metadata.version, archive, packageRoot: directory };
|
|
42
|
+
}
|
|
43
|
+
function installPythonCli(python, archive, user) {
|
|
44
|
+
(0, node_child_process_1.execFileSync)(python, ['-m', 'pip', 'install', '--disable-pip-version-check', '--no-index', '--no-deps', '--upgrade', ...(user ? ['--user'] : []), archive], { timeout: 180_000, stdio: 'pipe' });
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=updatePython.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePython.js","sourceRoot":"","sources":["../src/updatePython.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRuntime.d.ts","sourceRoot":"","sources":["../src/updateRuntime.ts"],"names":[],"mappings":"AAKA,oGAAoG;AACpG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA2C5E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.stageUpdateRuntime = stageUpdateRuntime;
|
|
7
|
+
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const errors_1 = require("./errors");
|
|
11
|
+
/** Stage a standalone Node runtime, including macOS relative dylibs, outside both installations. */
|
|
12
|
+
function stageUpdateRuntime(source, directory) {
|
|
13
|
+
const original = node_fs_1.default.realpathSync(source);
|
|
14
|
+
if (!/^node(?:\.exe)?$/i.test(node_path_1.default.basename(original))) {
|
|
15
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', 'The update helper requires a standalone Node executable. Nothing was changed.', 'Install Node 22 or newer and retry.');
|
|
16
|
+
}
|
|
17
|
+
// An Electron executable is not a standalone Node runtime. Copying it leaves
|
|
18
|
+
// framework dependencies behind (and pins the Windows app being replaced).
|
|
19
|
+
const environment = { ...process.env };
|
|
20
|
+
delete environment.ELECTRON_RUN_AS_NODE;
|
|
21
|
+
const probe = (0, node_child_process_1.execFileSync)(original, ['-p', 'JSON.stringify({node:process.versions.node,electron:process.versions.electron})'], {
|
|
22
|
+
encoding: 'utf8', env: environment, timeout: 10_000, stdio: ['ignore', 'pipe', 'pipe'],
|
|
23
|
+
});
|
|
24
|
+
if (probe.includes('electron'))
|
|
25
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', 'The updater requires standalone Node. Electron cannot supervise its own replacement. Nothing was changed.', 'Install Node 22 or newer on this host, then retry.');
|
|
26
|
+
node_fs_1.default.mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
27
|
+
const executable = node_path_1.default.join(directory, process.platform === 'win32' ? 'node.exe' : 'node');
|
|
28
|
+
node_fs_1.default.copyFileSync(original, executable, node_fs_1.default.constants.COPYFILE_EXCL);
|
|
29
|
+
node_fs_1.default.chmodSync(executable, 0o700);
|
|
30
|
+
if (process.platform === 'darwin') {
|
|
31
|
+
const pending = [original];
|
|
32
|
+
const copied = new Set();
|
|
33
|
+
while (pending.length) {
|
|
34
|
+
const binary = pending.pop();
|
|
35
|
+
const libraries = (0, node_child_process_1.execFileSync)('/usr/bin/otool', ['-L', binary], { encoding: 'utf8', timeout: 10_000 });
|
|
36
|
+
for (const line of libraries.split('\n').slice(1)) {
|
|
37
|
+
const reference = line.trim().split(' (')[0];
|
|
38
|
+
if (!reference.startsWith('@rpath/') && !reference.startsWith('@loader_path/'))
|
|
39
|
+
continue;
|
|
40
|
+
const name = node_path_1.default.basename(reference);
|
|
41
|
+
if (copied.has(name))
|
|
42
|
+
continue;
|
|
43
|
+
const candidates = [node_path_1.default.join(node_path_1.default.dirname(binary), name), node_path_1.default.join(node_path_1.default.dirname(binary), '..', 'lib', name)];
|
|
44
|
+
const found = candidates.find(file => node_fs_1.default.existsSync(file));
|
|
45
|
+
if (!found)
|
|
46
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', `Could not stage runtime library ${name}. Nothing was changed.`, 'Use a standalone Node distribution, then retry.');
|
|
47
|
+
node_fs_1.default.copyFileSync(found, node_path_1.default.join(directory, name), node_fs_1.default.constants.COPYFILE_EXCL);
|
|
48
|
+
copied.add(name);
|
|
49
|
+
pending.push(found);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// This is a real execution check, with no inherited Electron runtime flag.
|
|
54
|
+
const actual = (0, node_child_process_1.execFileSync)(executable, ['-p', 'JSON.stringify({node:process.versions.node,electron:process.versions.electron})'], {
|
|
55
|
+
encoding: 'utf8', env: environment, cwd: directory, timeout: 10_000, stdio: ['ignore', 'pipe', 'pipe'],
|
|
56
|
+
});
|
|
57
|
+
if (actual.trim() !== probe.trim())
|
|
58
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', 'The staged runtime did not pass its execution check. Nothing was changed.', 'Use a standalone Node distribution, then retry.');
|
|
59
|
+
return executable;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=updateRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRuntime.js","sourceRoot":"","sources":["../src/updateRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface UpdateSupervisorJob {
|
|
2
|
+
id: string;
|
|
3
|
+
directory: string;
|
|
4
|
+
executable: string;
|
|
5
|
+
args: string[];
|
|
6
|
+
}
|
|
7
|
+
/** Refuse before downtime when the current user's independent supervisor is unavailable. */
|
|
8
|
+
export declare function checkUpdateSupervisor(): void;
|
|
9
|
+
/** Launch through an OS service manager, never an inherited PTY/process tree. */
|
|
10
|
+
export declare function startUpdateSupervisor(job: UpdateSupervisorJob): void;
|
|
11
|
+
/** Removes only this operation's supervisor registration. It never stops Pane. */
|
|
12
|
+
export declare function removeUpdateSupervisor(id: string): void;
|
|
13
|
+
//# sourceMappingURL=updateSupervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateSupervisor.d.ts","sourceRoot":"","sources":["../src/updateSupervisor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAoBD,4FAA4F;AAC5F,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CA+CpE;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAKvD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkUpdateSupervisor = checkUpdateSupervisor;
|
|
7
|
+
exports.startUpdateSupervisor = startUpdateSupervisor;
|
|
8
|
+
exports.removeUpdateSupervisor = removeUpdateSupervisor;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
11
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
+
const errors_1 = require("./errors");
|
|
13
|
+
function windowsTool(name) {
|
|
14
|
+
return node_path_1.default.join(process.env.SystemRoot ?? 'C:\\Windows', 'System32', name);
|
|
15
|
+
}
|
|
16
|
+
function run(file, args) {
|
|
17
|
+
try {
|
|
18
|
+
return (0, node_child_process_1.execFileSync)(file, args, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], timeout: 30_000 }).trim();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_SUPERVISOR', `The current-user supervisor command failed: ${error instanceof Error ? error.message : String(error)}`, 'Inspect the operation status. Before shutdown Pane remains running; enable the current-user OS supervisor or use the installer manually.');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function xml(value) {
|
|
25
|
+
return value.replace(/[<>&"']/g, character => ({ '<': '<', '>': '>', '&': '&', '"': '"', "'": ''' })[character]);
|
|
26
|
+
}
|
|
27
|
+
function jobName(id) {
|
|
28
|
+
if (!/^[a-zA-Z0-9-]{1,80}$/.test(id))
|
|
29
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_ID', 'The update operation ID is invalid. Nothing was changed.', 'Use the ID returned by runpane update.');
|
|
30
|
+
return `com.pane.update.${id}`;
|
|
31
|
+
}
|
|
32
|
+
/** Refuse before downtime when the current user's independent supervisor is unavailable. */
|
|
33
|
+
function checkUpdateSupervisor() {
|
|
34
|
+
if (process.platform === 'darwin')
|
|
35
|
+
run('/bin/launchctl', ['print', `gui/${process.getuid()}`]);
|
|
36
|
+
else if (process.platform === 'win32')
|
|
37
|
+
run(windowsTool('schtasks.exe'), ['/Query', '/FO', 'CSV', '/NH']);
|
|
38
|
+
else if (process.platform === 'linux')
|
|
39
|
+
run('systemctl', ['--user', 'show-environment']);
|
|
40
|
+
else
|
|
41
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_PLATFORM', `Independent updates are unavailable on ${process.platform}. Nothing was changed.`, 'Use the supported installer on the owning host.');
|
|
42
|
+
}
|
|
43
|
+
/** Launch through an OS service manager, never an inherited PTY/process tree. */
|
|
44
|
+
function startUpdateSupervisor(job) {
|
|
45
|
+
const name = jobName(job.id);
|
|
46
|
+
if (!node_path_1.default.isAbsolute(job.executable) || !node_path_1.default.isAbsolute(job.directory)) {
|
|
47
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_PATH', 'Update helper paths must be absolute. Nothing was changed.', 'Run update again from the supported CLI installation.');
|
|
48
|
+
}
|
|
49
|
+
node_fs_1.default.mkdirSync(job.directory, { recursive: true, mode: 0o700 });
|
|
50
|
+
if (process.platform === 'darwin') {
|
|
51
|
+
const file = node_path_1.default.join(job.directory, 'supervisor.plist');
|
|
52
|
+
node_fs_1.default.writeFileSync(file, `<?xml version="1.0" encoding="UTF-8"?>
|
|
53
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
54
|
+
<plist version="1.0"><dict>
|
|
55
|
+
<key>Label</key><string>${name}</string>
|
|
56
|
+
<key>ProgramArguments</key><array>${[job.executable, ...job.args].map(arg => `<string>${xml(arg)}</string>`).join('')}</array>
|
|
57
|
+
<key>WorkingDirectory</key><string>${xml(job.directory)}</string>
|
|
58
|
+
<key>RunAtLoad</key><true/>
|
|
59
|
+
<key>KeepAlive</key><dict><key>SuccessfulExit</key><false/></dict>
|
|
60
|
+
<key>ThrottleInterval</key><integer>5</integer>
|
|
61
|
+
<key>StandardOutPath</key><string>${xml(node_path_1.default.join(job.directory, 'supervisor.log'))}</string>
|
|
62
|
+
<key>StandardErrorPath</key><string>${xml(node_path_1.default.join(job.directory, 'supervisor.log'))}</string>
|
|
63
|
+
</dict></plist>`, { mode: 0o600 });
|
|
64
|
+
run('/bin/launchctl', ['bootstrap', `gui/${process.getuid()}`, file]);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (process.platform === 'win32') {
|
|
68
|
+
const sid = run(windowsTool('whoami.exe'), ['/user', '/fo', 'csv', '/nh']).match(/S-1-[\d-]+/)?.[0];
|
|
69
|
+
if (!sid)
|
|
70
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_IDENTITY', 'Could not identify the Windows account for the updater. Nothing was changed.', 'Run update from an interactive Windows login.');
|
|
71
|
+
const file = node_path_1.default.join(job.directory, 'supervisor.xml');
|
|
72
|
+
// Windows CommandLineToArgvW quoting, after XML escaping. No shell expansion.
|
|
73
|
+
const args = job.args.map(arg => `"${arg.replace(/(\\*)"/g, '$1$1\\"').replace(/(\\+)$/, '$1$1')}"`).join(' ');
|
|
74
|
+
node_fs_1.default.writeFileSync(file, `\uFEFF<?xml version="1.0" encoding="UTF-16"?>
|
|
75
|
+
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
|
76
|
+
<Principals><Principal id="Owner"><UserId>${sid}</UserId><LogonType>InteractiveToken</LogonType><RunLevel>LeastPrivilege</RunLevel></Principal></Principals>
|
|
77
|
+
<Settings><MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy><DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries><StopIfGoingOnBatteries>false</StopIfGoingOnBatteries><ExecutionTimeLimit>PT0S</ExecutionTimeLimit><RestartOnFailure><Interval>PT1M</Interval><Count>3</Count></RestartOnFailure></Settings>
|
|
78
|
+
<Actions Context="Owner"><Exec><Command>${xml(job.executable)}</Command><Arguments>${xml(args)}</Arguments><WorkingDirectory>${xml(job.directory)}</WorkingDirectory></Exec></Actions>
|
|
79
|
+
</Task>`, { encoding: 'utf16le', mode: 0o600 });
|
|
80
|
+
run(windowsTool('schtasks.exe'), ['/Create', '/TN', name, '/XML', file]);
|
|
81
|
+
// RunEx flag 2 avoids silently queuing behind battery/idle constraints.
|
|
82
|
+
// Startup is still unconfirmed until the helper writes its own acknowledgement.
|
|
83
|
+
const start = `$service = New-Object -ComObject Schedule.Service; $service.Connect(); $null = $service.GetFolder('\\').GetTask('${name}').RunEx($null, 2, 0, $null)`;
|
|
84
|
+
run(node_path_1.default.join(process.env.SystemRoot ?? 'C:\\Windows', 'System32', 'WindowsPowerShell', 'v1.0', 'powershell.exe'), ['-NoProfile', '-NonInteractive', '-EncodedCommand', Buffer.from(start, 'utf16le').toString('base64')]);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (process.platform === 'linux') {
|
|
88
|
+
run('systemd-run', ['--user', '--collect', `--unit=${name}`, '--property=Restart=on-failure', '--property=RestartSec=5s', `--working-directory=${job.directory}`, '--', job.executable, ...job.args]);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
checkUpdateSupervisor();
|
|
92
|
+
}
|
|
93
|
+
/** Removes only this operation's supervisor registration. It never stops Pane. */
|
|
94
|
+
function removeUpdateSupervisor(id) {
|
|
95
|
+
const name = jobName(id);
|
|
96
|
+
if (process.platform === 'darwin')
|
|
97
|
+
run('/bin/launchctl', ['bootout', `gui/${process.getuid()}/${name}`]);
|
|
98
|
+
else if (process.platform === 'win32')
|
|
99
|
+
run(windowsTool('schtasks.exe'), ['/Delete', '/TN', name, '/F']);
|
|
100
|
+
else if (process.platform === 'linux')
|
|
101
|
+
run('systemctl', ['--user', 'stop', name]);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=updateSupervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateSupervisor.js","sourceRoot":"","sources":["../src/updateSupervisor.ts"],"names":[],"mappings":"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"}
|