1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.getDmgTemplatePath = getDmgTemplatePath;
|
7 | exports.getDmgVendorPath = getDmgVendorPath;
|
8 | exports.attachAndExecute = attachAndExecute;
|
9 | exports.detach = detach;
|
10 | exports.computeBackground = computeBackground;
|
11 | exports.serializeString = serializeString;
|
12 | Object.defineProperty(exports, "DmgTarget", {
|
13 | enumerable: true,
|
14 | get: function () {
|
15 | return _dmg().DmgTarget;
|
16 | }
|
17 | });
|
18 |
|
19 | function _builderUtil() {
|
20 | const data = require("builder-util");
|
21 |
|
22 | _builderUtil = function () {
|
23 | return data;
|
24 | };
|
25 |
|
26 | return data;
|
27 | }
|
28 |
|
29 | function _promise() {
|
30 | const data = require("builder-util/out/promise");
|
31 |
|
32 | _promise = function () {
|
33 | return data;
|
34 | };
|
35 |
|
36 | return data;
|
37 | }
|
38 |
|
39 | var path = _interopRequireWildcard(require("path"));
|
40 |
|
41 | function _dmg() {
|
42 | const data = require("./dmg");
|
43 |
|
44 | _dmg = function () {
|
45 | return data;
|
46 | };
|
47 |
|
48 | return data;
|
49 | }
|
50 |
|
51 | function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
52 |
|
53 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
54 |
|
55 | const root = path.join(__dirname, "..");
|
56 |
|
57 | function getDmgTemplatePath() {
|
58 | return path.join(root, "templates");
|
59 | }
|
60 |
|
61 | function getDmgVendorPath() {
|
62 | return path.join(root, "vendor");
|
63 | }
|
64 |
|
65 | async function attachAndExecute(dmgPath, readWrite, task) {
|
66 |
|
67 | const args = ["attach", "-noverify", "-noautoopen"];
|
68 |
|
69 | if (readWrite) {
|
70 | args.push("-readwrite");
|
71 | }
|
72 |
|
73 | args.push(dmgPath);
|
74 | const attachResult = await (0, _builderUtil().exec)("hdiutil", args);
|
75 | const deviceResult = attachResult == null ? null : /^(\/dev\/\w+)/.exec(attachResult);
|
76 | const device = deviceResult == null || deviceResult.length !== 2 ? null : deviceResult[1];
|
77 |
|
78 | if (device == null) {
|
79 | throw new Error(`Cannot mount: ${attachResult}`);
|
80 | }
|
81 |
|
82 | return await (0, _promise().executeFinally)(task(), () => detach(device));
|
83 | }
|
84 |
|
85 | async function detach(name) {
|
86 | try {
|
87 | await (0, _builderUtil().exec)("hdiutil", ["detach", "-quiet", name]);
|
88 | } catch (e) {
|
89 | await new Promise((resolve, reject) => {
|
90 | setTimeout(() => {
|
91 | (0, _builderUtil().exec)("hdiutil", ["detach", "-force", name]).then(resolve).catch(reject);
|
92 | }, 1000);
|
93 | });
|
94 | }
|
95 | }
|
96 |
|
97 | async function computeBackground(packager) {
|
98 | const resourceList = await packager.resourceList;
|
99 |
|
100 | if (resourceList.includes("background.tiff")) {
|
101 | return path.join(packager.buildResourcesDir, "background.tiff");
|
102 | } else if (resourceList.includes("background.png")) {
|
103 | return path.join(packager.buildResourcesDir, "background.png");
|
104 | } else {
|
105 | return path.join(getDmgTemplatePath(), "background.tiff");
|
106 | }
|
107 | }
|
108 |
|
109 |
|
110 |
|
111 | function serializeString(data) {
|
112 | return ' $"' + data.match(/.{1,32}/g).map(it => it.match(/.{1,4}/g).join(" ")).join('"\n $"') + '"';
|
113 | }
|
114 |
|
115 |
|
\ | No newline at end of file |