| 854 | windowsHide: true, |
| 855 | }); |
| 856 | return `${String(stdout || "")}${String(stderr || "")}`; |
| 857 | } catch (error: unknown) { |
| 858 | const execError = error as { stdout?: unknown; stderr?: unknown }; |
| 859 | const output = `${String(execError.stdout || "")}${String(execError.stderr || "")}`.trim(); |
| 860 | throw new Error(output || "OpenList 命令执行失败"); |
| 861 | } |
| 862 | } |
| 863 | |
| 864 | private normalizeInstallPath(input: string): string { |
| 865 | let p = input.replace(/\/+$/, ""); |
| 866 | if (!p.endsWith("/openlist")) p = `${p}/openlist`; |
| 867 | return p; |
| 868 | } |