UNPKG

2.7 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.serializeString = exports.computeBackground = exports.detach = exports.attachAndExecute = exports.getDmgVendorPath = exports.getDmgTemplatePath = exports.DmgTarget = void 0;
4const builder_util_1 = require("builder-util");
5const promise_1 = require("builder-util/out/promise");
6const path = require("path");
7var dmg_1 = require("./dmg");
8Object.defineProperty(exports, "DmgTarget", { enumerable: true, get: function () { return dmg_1.DmgTarget; } });
9const root = path.join(__dirname, "..");
10function getDmgTemplatePath() {
11 return path.join(root, "templates");
12}
13exports.getDmgTemplatePath = getDmgTemplatePath;
14function getDmgVendorPath() {
15 return path.join(root, "vendor");
16}
17exports.getDmgVendorPath = getDmgVendorPath;
18async function attachAndExecute(dmgPath, readWrite, task) {
19 //noinspection SpellCheckingInspection
20 const args = ["attach", "-noverify", "-noautoopen"];
21 if (readWrite) {
22 args.push("-readwrite");
23 }
24 args.push(dmgPath);
25 const attachResult = await builder_util_1.exec("hdiutil", args);
26 const deviceResult = attachResult == null ? null : /^(\/dev\/\w+)/.exec(attachResult);
27 const device = deviceResult == null || deviceResult.length !== 2 ? null : deviceResult[1];
28 if (device == null) {
29 throw new Error(`Cannot mount: ${attachResult}`);
30 }
31 return await promise_1.executeFinally(task(), () => detach(device));
32}
33exports.attachAndExecute = attachAndExecute;
34async function detach(name) {
35 try {
36 await builder_util_1.exec("hdiutil", ["detach", "-quiet", name]);
37 }
38 catch (e) {
39 await new Promise((resolve, reject) => {
40 setTimeout(() => {
41 builder_util_1.exec("hdiutil", ["detach", "-force", name]).then(resolve).catch(reject);
42 }, 1000);
43 });
44 }
45}
46exports.detach = detach;
47async function computeBackground(packager) {
48 const resourceList = await packager.resourceList;
49 if (resourceList.includes("background.tiff")) {
50 return path.join(packager.buildResourcesDir, "background.tiff");
51 }
52 else if (resourceList.includes("background.png")) {
53 return path.join(packager.buildResourcesDir, "background.png");
54 }
55 else {
56 return path.join(getDmgTemplatePath(), "background.tiff");
57 }
58}
59exports.computeBackground = computeBackground;
60/** @internal */
61function serializeString(data) {
62 return (' $"' +
63 data
64 .match(/.{1,32}/g)
65 .map(it => it.match(/.{1,4}/g).join(" "))
66 .join('"\n $"') +
67 '"');
68}
69exports.serializeString = serializeString;
70//# sourceMappingURL=dmgUtil.js.map
\No newline at end of file