UNPKG

5.15 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.toAppImageOrSnapArch = toAppImageOrSnapArch;
7exports.LinuxPackager = void 0;
8
9function _bluebirdLst() {
10 const data = require("bluebird-lst");
11
12 _bluebirdLst = function () {
13 return data;
14 };
15
16 return data;
17}
18
19function _builderUtil() {
20 const data = require("builder-util");
21
22 _builderUtil = function () {
23 return data;
24 };
25
26 return data;
27}
28
29function _sanitizeFilename() {
30 const data = _interopRequireDefault(require("sanitize-filename"));
31
32 _sanitizeFilename = function () {
33 return data;
34 };
35
36 return data;
37}
38
39function _core() {
40 const data = require("./core");
41
42 _core = function () {
43 return data;
44 };
45
46 return data;
47}
48
49function _platformPackager() {
50 const data = require("./platformPackager");
51
52 _platformPackager = function () {
53 return data;
54 };
55
56 return data;
57}
58
59function _RemoteBuilder() {
60 const data = require("./remoteBuilder/RemoteBuilder");
61
62 _RemoteBuilder = function () {
63 return data;
64 };
65
66 return data;
67}
68
69function _LinuxTargetHelper() {
70 const data = require("./targets/LinuxTargetHelper");
71
72 _LinuxTargetHelper = function () {
73 return data;
74 };
75
76 return data;
77}
78
79function _targetFactory() {
80 const data = require("./targets/targetFactory");
81
82 _targetFactory = function () {
83 return data;
84 };
85
86 return data;
87}
88
89function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
90
91class LinuxPackager extends _platformPackager().PlatformPackager {
92 constructor(info) {
93 super(info, _core().Platform.LINUX);
94 const executableName = this.platformSpecificBuildOptions.executableName;
95 this.executableName = executableName == null ? this.appInfo.sanitizedName.toLowerCase() : (0, _sanitizeFilename().default)(executableName);
96 }
97
98 get defaultTarget() {
99 return ["snap", "appimage"];
100 }
101
102 createTargets(targets, mapper) {
103 let helper;
104
105 const getHelper = () => {
106 if (helper == null) {
107 helper = new (_LinuxTargetHelper().LinuxTargetHelper)(this);
108 }
109
110 return helper;
111 };
112
113 let remoteBuilder = null;
114
115 for (const name of targets) {
116 if (name === _core().DIR_TARGET) {
117 continue;
118 }
119
120 const targetClass = (() => {
121 switch (name) {
122 case "appimage":
123 return require("./targets/AppImageTarget").default;
124
125 case "snap":
126 return require("./targets/snap").default;
127
128 case "deb":
129 case "rpm":
130 case "sh":
131 case "freebsd":
132 case "pacman":
133 case "apk":
134 case "p5p":
135 return require("./targets/fpm").default;
136
137 default:
138 return null;
139 }
140 })();
141
142 mapper(name, outDir => {
143 if (targetClass === null) {
144 return (0, _targetFactory().createCommonTarget)(name, outDir, this);
145 }
146
147 const target = new targetClass(name, this, getHelper(), outDir);
148
149 if (process.platform === "win32" || process.env._REMOTE_BUILD) {
150 if (remoteBuilder == null) {
151 remoteBuilder = new (_RemoteBuilder().RemoteBuilder)(this);
152 } // return remoteBuilder.buildTarget(this, arch, appOutDir, this.packager)
153
154
155 return new RemoteTarget(target, remoteBuilder);
156 }
157
158 return target;
159 });
160 }
161 }
162
163}
164
165exports.LinuxPackager = LinuxPackager;
166
167class RemoteTarget extends _core().Target {
168 constructor(target, remoteBuilder) {
169 super(target.name, true
170 /* all must be scheduled in time (so, on finishBuild RemoteBuilder will have all targets added - so, we must set isAsyncSupported to true (resolved promise is returned)) */
171 );
172 this.target = target;
173 this.remoteBuilder = remoteBuilder;
174 this.buildTaskManager = new (_builderUtil().AsyncTaskManager)(this.remoteBuilder.packager.info.cancellationToken);
175 }
176
177 get options() {
178 return this.target.options;
179 }
180
181 get outDir() {
182 return this.target.outDir;
183 }
184
185 finishBuild() {
186 var _this = this;
187
188 return (0, _bluebirdLst().coroutine)(function* () {
189 yield _this.buildTaskManager.awaitTasks();
190 yield _this.remoteBuilder.build();
191 })();
192 }
193
194 build(appOutDir, arch) {
195 const promise = this.doBuild(appOutDir, arch);
196 this.buildTaskManager.addTask(promise);
197 return promise;
198 }
199
200 doBuild(appOutDir, arch) {
201 var _this2 = this;
202
203 return (0, _bluebirdLst().coroutine)(function* () {
204 _builderUtil().log.info({
205 target: _this2.target.name,
206 arch: _builderUtil().Arch[arch]
207 }, "scheduling remote build");
208
209 yield _this2.target.checkOptions();
210
211 _this2.remoteBuilder.scheduleBuild(_this2.target, arch, appOutDir);
212 })();
213 }
214
215}
216
217function toAppImageOrSnapArch(arch) {
218 switch (arch) {
219 case _builderUtil().Arch.x64:
220 return "x86_64";
221
222 case _builderUtil().Arch.ia32:
223 return "i386";
224
225 case _builderUtil().Arch.armv7l:
226 return "arm";
227
228 case _builderUtil().Arch.arm64:
229 return "arm_aarch64";
230
231 default:
232 throw new Error(`Unsupported arch ${arch}`);
233 }
234}
235//# sourceMappingURL=linuxPackager.js.map
\No newline at end of file