UNPKG

utools-utils

Version:
81 lines (79 loc) 2.12 kB
import { hideAndOutPlugin } from "./chunk-JWDVB74T.mjs"; // src/preload.ts import { exec, execFile, execFileSync, spawn } from "node:child_process"; async function execCommand(command, options) { return new Promise((resolve, reject) => { const child = exec(command, options, (err, stdout) => { if (err) { reject(err); } else { resolve({ stdout: stdout.toString(), kill: () => child.kill() }); } }); }); } function spawnCommand(command, args, inputs, options) { return new Promise((resolve, reject) => { const child = spawn(command, args, options); if (inputs !== void 0 && inputs.length > 0) { for (const input of inputs) { child.stdin.write(input); } child.stdin.end(); } let stderr = Buffer.from(""); child.stderr.on("data", (chunk) => stderr += chunk); let stdout = Buffer.from(""); child.stdout.on("data", (chunk) => stdout += chunk); child.on("close", (code) => { if (code === 0) { resolve({ stdout: stdout.toString(), kill: () => child.kill() }); } else { reject(new Error(stderr.toString())); } }); child.on("error", reject); }); } async function execPowerShell(script) { return await execCommand(script, { shell: "powershell.exe" }); } async function execAppleScript(script) { return new Promise((resolve, reject) => { const child = execFile("osascript", ["-e", script], (err, stdout) => { if (err) { reject(err); } else { resolve({ stdout: stdout.toString(), kill: () => child.kill() }); } }); }); } function execAppleScriptSync(script) { return execFileSync("osascript", ["-e", script]).toString(); } async function execScript(script, defaultShell = false) { hideAndOutPlugin(); if (defaultShell) return execCommand(script); if (utools.isWindows()) return execPowerShell(script); if (utools.isMacOS()) return execAppleScript(script); return execCommand(script); } export { execAppleScript, execAppleScriptSync, execCommand, execPowerShell, execScript, spawnCommand };