You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.0 KiB
101 lines
3.0 KiB
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.OSX_SOURCE_PATH = void 0;
|
|
exports.addToPathAsync = addToPathAsync;
|
|
exports.getBinariesPath = getBinariesPath;
|
|
exports.isXcodeInstalled = isXcodeInstalled;
|
|
exports.writePathToUserSettingsAsync = writePathToUserSettingsAsync;
|
|
function _fsExtra() {
|
|
const data = _interopRequireDefault(require("fs-extra"));
|
|
_fsExtra = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _hasbin() {
|
|
const data = _interopRequireDefault(require("hasbin"));
|
|
_hasbin = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _path() {
|
|
const data = _interopRequireDefault(require("path"));
|
|
_path = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _internal() {
|
|
const data = require("./internal");
|
|
_internal = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
const OSX_SOURCE_PATH = _path().default.join(__dirname, '..', 'binaries', 'osx');
|
|
exports.OSX_SOURCE_PATH = OSX_SOURCE_PATH;
|
|
function _hasbinAsync(name) {
|
|
return new Promise((resolve, reject) => {
|
|
(0, _hasbin().default)(name, result => {
|
|
resolve(result);
|
|
});
|
|
});
|
|
}
|
|
function getBinariesPath() {
|
|
if (process.platform === 'darwin') {
|
|
return _path().default.join(__dirname, '..', 'binaries', 'osx');
|
|
} else if (process.platform === 'win32') {
|
|
return _path().default.join(__dirname, '..', 'binaries', 'windows');
|
|
} else if (process.platform === 'linux') {
|
|
return _path().default.join(__dirname, '..', 'binaries', 'linux');
|
|
} else {
|
|
throw new (_internal().XDLError)('PLATFORM_NOT_SUPPORTED', 'Platform not supported.');
|
|
}
|
|
}
|
|
async function addToPathAsync(name) {
|
|
if (await _hasbinAsync(name)) {
|
|
return;
|
|
}
|
|
|
|
// Users can set {ignoreBundledBinaries: ["watchman"]} to tell us to never use our version
|
|
const ignoreBundledBinaries = await _internal().UserSettings.getAsync('ignoreBundledBinaries', []);
|
|
if (ignoreBundledBinaries.includes(name)) {
|
|
return;
|
|
}
|
|
const binariesPath = _path().default.join(getBinariesPath(), name);
|
|
_prependToPath(binariesPath);
|
|
}
|
|
function _prependToPath(newPath) {
|
|
let currentPath = process.env.PATH ? process.env.PATH : '';
|
|
if (currentPath.length > 0) {
|
|
const delimiter = process.platform === 'win32' ? ';' : ':';
|
|
currentPath = `${delimiter}${currentPath}`;
|
|
}
|
|
process.env.PATH = `${newPath}${currentPath}`;
|
|
}
|
|
async function writePathToUserSettingsAsync() {
|
|
await _internal().UserSettings.setAsync('PATH', process.env.PATH);
|
|
|
|
// Used in detach app
|
|
const pathFile = _path().default.join(_internal().UserSettings.dotExpoHomeDirectory(), 'PATH');
|
|
await _fsExtra().default.writeFile(pathFile, process.env.PATH);
|
|
}
|
|
function _isDirectory(dir) {
|
|
try {
|
|
if (_fsExtra().default.statSync(dir).isDirectory()) {
|
|
return true;
|
|
}
|
|
return false;
|
|
} catch {
|
|
return false;
|
|
}
|
|
}
|
|
function isXcodeInstalled() {
|
|
return _isDirectory('/Applications/Xcode.app/');
|
|
}
|
|
//# sourceMappingURL=Binaries.js.map
|