

























@@ -53,6 +53,10 @@ exit 0
5353await fs.writeFile(launchctlPath, content, { mode: 0o755 });
5454}
555556+async function writeFakeSleep(fakeBinDir: string) {
57+await fs.writeFile(path.join(fakeBinDir, "sleep"), "#!/bin/sh\nexit 0\n", { mode: 0o755 });
58+}
59+5660async function executeScript(scriptPath: string, env: Record<string, string>) {
5761return await new Promise<{ code: number | null; stdout: string; stderr: string }>((resolve) => {
5862execFile(
@@ -148,6 +152,7 @@ exit 0
148152const fakeBinDir = path.join(tmpDir, "bin");
149153const callsPath = path.join(tmpDir, "systemctl-calls.log");
150154await fs.mkdir(fakeBinDir, { recursive: true });
155+await writeFakeSleep(fakeBinDir);
151156await fs.writeFile(
152157path.join(fakeBinDir, "systemctl"),
153158`#!/bin/sh
@@ -245,6 +250,7 @@ exit 1
245250const fakeBinDir = path.join(tmpDir, "bin");
246251const stateDir = path.join(tmpDir, "state");
247252await fs.mkdir(fakeBinDir, { recursive: true });
253+await writeFakeSleep(fakeBinDir);
248254await writeFakeLaunchctl(
249255fakeBinDir,
250256`#!/bin/sh
@@ -284,6 +290,7 @@ exit 0
284290const stateFile = path.join(tmpDir, "state-file");
285291const markerPath = path.join(tmpDir, "launchctl-ran");
286292await fs.mkdir(fakeBinDir, { recursive: true });
293+await writeFakeSleep(fakeBinDir);
287294await fs.writeFile(stateFile, "not a directory");
288295await writeFakeLaunchctl(
289296fakeBinDir,
@@ -315,6 +322,7 @@ exit 0
315322const fakeBinDir = path.join(tmpDir, "bin");
316323const stateDir = path.join(tmpDir, "state");
317324await fs.mkdir(fakeBinDir, { recursive: true });
325+await writeFakeSleep(fakeBinDir);
318326await writeFakeLaunchctl(fakeBinDir);
319327320328const { scriptPath } = await prepareAndReadScript({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。