utools-utils
Version:
Common utilities for uTools
81 lines (79 loc) • 2.12 kB
JavaScript
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
};