SamuelGalaxys's picture
Upload 1921 files
e4a10af
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const ChildProcesses = require("child_process");
const Plist = require("plist");
function writePlist(plist, to) {
return new Promise((resolve, reject) => {
const pls = Plist.build(plist);
to.write(pls, "UTF-8", error => {
if (error)
reject(error);
else
to.end(resolve);
});
});
}
async function writePlistToDmg(imagePath, plist) {
const child = ChildProcesses.spawn("hdiutil", ["udifrez", "-xml", "/dev/fd/3", imagePath, imagePath], {
stdio: ["inherit", "ignore", "inherit", "pipe"]
});
const childPromise = new Promise((resolve, reject) => {
let exited = false;
const timeout = setTimeout(() => {
if (!exited && !child.killed) {
child.kill();
reject(new Error("Timed out waiting for child process."));
}
}, 10000);
child.on("error", error => {
exited = true;
clearTimeout(timeout);
child.unref();
reject(error);
});
child.on("exit", code => {
exited = true;
clearTimeout(timeout);
child.unref();
if (code) {
reject(new Error(`Child process exited with code ${code}.`));
}
else {
resolve();
}
});
});
const writing = writePlist(plist, child.stdio[3]);
await Promise.all([childPromise, writing]);
}
exports.default = writePlistToDmg;
//# sourceMappingURL=writePlistToDmg.js.map