UNPKG

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