1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.checkWineVersion = undefined;
|
7 |
|
8 | var _bluebirdLst;
|
9 |
|
10 | function _load_bluebirdLst() {
|
11 | return _bluebirdLst = require("bluebird-lst");
|
12 | }
|
13 |
|
14 |
|
15 | let checkWineVersion = exports.checkWineVersion = (() => {
|
16 | var _ref2 = (0, (_bluebirdLst || _load_bluebirdLst()).coroutine)(function* (checkPromise) {
|
17 | function wineError(prefix) {
|
18 | return `${prefix}, please see https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build#${process.platform === "linux" ? "linux" : "macos"}`;
|
19 | }
|
20 | let wineVersion;
|
21 | try {
|
22 | wineVersion = (yield checkPromise).trim();
|
23 | } catch (e) {
|
24 | if (e.code === "ENOENT") {
|
25 | throw new Error(wineError("wine is required"));
|
26 | } else {
|
27 | throw new Error(`Cannot check wine version: ${e}`);
|
28 | }
|
29 | }
|
30 | if (wineVersion.startsWith("wine-")) {
|
31 | wineVersion = wineVersion.substring("wine-".length);
|
32 | }
|
33 | const spaceIndex = wineVersion.indexOf(" ");
|
34 | if (spaceIndex > 0) {
|
35 | wineVersion = wineVersion.substring(0, spaceIndex);
|
36 | }
|
37 | const suffixIndex = wineVersion.indexOf("-");
|
38 | if (suffixIndex > 0) {
|
39 | wineVersion = wineVersion.substring(0, suffixIndex);
|
40 | }
|
41 | if (wineVersion.split(".").length === 2) {
|
42 | wineVersion += ".0";
|
43 | }
|
44 | if ((0, (_semver || _load_semver()).lt)(wineVersion, "1.8.0")) {
|
45 | throw new Error(wineError(`wine 1.8+ is required, but your version is ${wineVersion}`));
|
46 | }
|
47 | });
|
48 |
|
49 | return function checkWineVersion(_x2) {
|
50 | return _ref2.apply(this, arguments);
|
51 | };
|
52 | })();
|
53 |
|
54 |
|
55 |
|
56 | exports.execWine = execWine;
|
57 | exports.prepareWindowsExecutableArgs = prepareWindowsExecutableArgs;
|
58 |
|
59 | var _lazyVal;
|
60 |
|
61 | function _load_lazyVal() {
|
62 | return _lazyVal = require("lazy-val");
|
63 | }
|
64 |
|
65 | var _path = _interopRequireWildcard(require("path"));
|
66 |
|
67 | var _semver;
|
68 |
|
69 | function _load_semver() {
|
70 | return _semver = require("semver");
|
71 | }
|
72 |
|
73 | var _binDownload;
|
74 |
|
75 | function _load_binDownload() {
|
76 | return _binDownload = require("./binDownload");
|
77 | }
|
78 |
|
79 | var _bundledTool;
|
80 |
|
81 | function _load_bundledTool() {
|
82 | return _bundledTool = require("./bundledTool");
|
83 | }
|
84 |
|
85 | var _macosVersion;
|
86 |
|
87 | function _load_macosVersion() {
|
88 | return _macosVersion = require("./macosVersion");
|
89 | }
|
90 |
|
91 | var _util;
|
92 |
|
93 | function _load_util() {
|
94 | return _util = require("./util");
|
95 | }
|
96 |
|
97 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
98 |
|
99 | const wineExecutable = new (_lazyVal || _load_lazyVal()).Lazy((0, (_bluebirdLst || _load_bluebirdLst()).coroutine)(function* () {
|
100 | (0, (_util || _load_util()).debug)(`USE_SYSTEM_WINE: ${process.env.USE_SYSTEM_WINE}`);
|
101 | if (!(0, (_util || _load_util()).isEnvTrue)(process.env.USE_SYSTEM_WINE) && (yield (0, (_macosVersion || _load_macosVersion()).isMacOsSierra)())) {
|
102 |
|
103 | const wineDir = yield (0, (_binDownload || _load_binDownload()).getBinFromGithub)("wine", "2.0.1-mac-10.12", "IvKwDml/Ob0vKfYVxcu92wxUzHu8lTQSjjb8OlCTQ6bdNpVkqw17OM14TPpzGMIgSxfVIrQZhZdCwpkxLyG3mg==");
|
104 | return {
|
105 | path: _path.join(wineDir, "bin/wine"),
|
106 | env: Object.assign({}, process.env, { WINEDEBUG: "-all,err+all", WINEDLLOVERRIDES: "winemenubuilder.exe=d", WINEPREFIX: _path.join(wineDir, "wine-home"), DYLD_FALLBACK_LIBRARY_PATH: (0, (_bundledTool || _load_bundledTool()).computeEnv)(process.env.DYLD_FALLBACK_LIBRARY_PATH, [_path.join(wineDir, "lib")]) })
|
107 | };
|
108 | }
|
109 | yield checkWineVersion((0, (_util || _load_util()).exec)("wine", ["--version"]));
|
110 | return { path: "wine" };
|
111 | }));
|
112 |
|
113 | function execWine(file, args) {
|
114 | let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (_bundledTool || _load_bundledTool()).EXEC_TIMEOUT;
|
115 |
|
116 | if (process.platform === "win32") {
|
117 | return (0, (_util || _load_util()).exec)(file, args, options);
|
118 | } else {
|
119 | return wineExecutable.value.then(wine => (0, (_util || _load_util()).exec)(wine.path, [file].concat(args), wine.env == null ? options : Object.assign({ env: wine.env }, options)));
|
120 | }
|
121 | }
|
122 |
|
123 | function prepareWindowsExecutableArgs(args, exePath) {
|
124 | if (process.platform !== "win32") {
|
125 | args.unshift(exePath);
|
126 | }
|
127 | return args;
|
128 | } |
\ | No newline at end of file |