appium-doctor
Version:
Test environment for fitness to run Appium
85 lines (58 loc) • 7.85 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.BinaryIsInPathCheck = exports.AndroidSdkExists = void 0;
require("source-map-support/register");
var _doctor = require("./doctor");
var _utils = require("./utils");
var _appiumSupport = require("appium-support");
var _path = _interopRequireDefault(require("path"));
require("@colors/colors");
let checks = [];
class BinaryIsInPathCheck extends _doctor.DoctorCheck {
constructor(binary) {
super();
this.binary = binary;
}
async diagnose() {
const resolvedPath = await (0, _utils.resolveExecutablePath)(this.binary);
if (!resolvedPath) {
return (0, _utils.nok)(`${this.binary} is MISSING in PATH: ${process.env.PATH}`);
}
return (0, _utils.ok)(`${this.binary} was found at ${resolvedPath}`);
}
fix() {
return `Manually install the ${this.binary.bold} binary and add it to ${'PATH'.bold}.`;
}
}
exports.BinaryIsInPathCheck = BinaryIsInPathCheck;
checks.push(new BinaryIsInPathCheck(_appiumSupport.system.isWindows() ? 'mvn.bat' : 'mvn'));
checks.push(new BinaryIsInPathCheck(_appiumSupport.system.isWindows() ? 'ant.bat' : 'ant'));
checks.push(new BinaryIsInPathCheck(_appiumSupport.system.isWindows() ? 'adb.exe' : 'adb'));
class AndroidSdkExists extends _doctor.DoctorCheck {
constructor(sdk) {
super();
this.sdk = sdk;
}
async diagnose() {
if (typeof process.env.ANDROID_HOME === 'undefined') {
return (0, _utils.nok)(`${this.sdk} could not be found because ANDROID_HOME is NOT set!`);
}
let sdkPath = _path.default.resolve(process.env.ANDROID_HOME, _path.default.join('platforms', this.sdk));
return (await _appiumSupport.fs.exists(sdkPath)) ? (0, _utils.ok)(`${this.sdk} was found at: ${sdkPath}`) : (0, _utils.nok)(`${this.sdk} could NOT be found at '${sdkPath}'!`);
}
fix() {
if (typeof process.env.ANDROID_HOME === 'undefined') {
return `Manually configure ${'ANDROID_HOME'.bold}.`;
}
return `Manually install the ${this.sdk.bold} sdk.`;
}
}
exports.AndroidSdkExists = AndroidSdkExists;
checks.push(new AndroidSdkExists('android-16'));
checks.push(new AndroidSdkExists('android-19'));
var _default = checks;
exports.default = _default;require('source-map-support').install();
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2Rldi5qcyIsIm5hbWVzIjpbImNoZWNrcyIsIkJpbmFyeUlzSW5QYXRoQ2hlY2siLCJEb2N0b3JDaGVjayIsImNvbnN0cnVjdG9yIiwiYmluYXJ5IiwiZGlhZ25vc2UiLCJyZXNvbHZlZFBhdGgiLCJyZXNvbHZlRXhlY3V0YWJsZVBhdGgiLCJub2siLCJwcm9jZXNzIiwiZW52IiwiUEFUSCIsIm9rIiwiZml4IiwiYm9sZCIsInB1c2giLCJzeXN0ZW0iLCJpc1dpbmRvd3MiLCJBbmRyb2lkU2RrRXhpc3RzIiwic2RrIiwiQU5EUk9JRF9IT01FIiwic2RrUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiam9pbiIsImZzIiwiZXhpc3RzIl0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL2Rldi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N0b3JDaGVjayB9IGZyb20gJy4vZG9jdG9yJztcbmltcG9ydCB7IG9rLCBub2ssIHJlc29sdmVFeGVjdXRhYmxlUGF0aCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgZnMsIHN5c3RlbSB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICdAY29sb3JzL2NvbG9ycyc7XG5cbmxldCBjaGVja3MgPSBbXTtcblxuLy8gQ2hlY2sgUEFUSCBiaW5hcmllc1xuY2xhc3MgQmluYXJ5SXNJblBhdGhDaGVjayBleHRlbmRzIERvY3RvckNoZWNrIHtcbiAgY29uc3RydWN0b3IgKGJpbmFyeSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5iaW5hcnkgPSBiaW5hcnk7XG4gIH1cblxuICBhc3luYyBkaWFnbm9zZSAoKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gYXdhaXQgcmVzb2x2ZUV4ZWN1dGFibGVQYXRoKHRoaXMuYmluYXJ5KTtcbiAgICBpZiAoIXJlc29sdmVkUGF0aCkge1xuICAgICAgcmV0dXJuIG5vayhgJHt0aGlzLmJpbmFyeX0gaXMgTUlTU0lORyBpbiBQQVRIOiAke3Byb2Nlc3MuZW52LlBBVEh9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9rKGAke3RoaXMuYmluYXJ5fSB3YXMgZm91bmQgYXQgJHtyZXNvbHZlZFBhdGh9YCk7XG4gIH1cblxuICBmaXggKCkge1xuICAgIHJldHVybiBgTWFudWFsbHkgaW5zdGFsbCB0aGUgJHt0aGlzLmJpbmFyeS5ib2xkfSBiaW5hcnkgYW5kIGFkZCBpdCB0byAkeydQQVRIJy5ib2xkfS5gO1xuICB9XG59XG5cbmNoZWNrcy5wdXNoKG5ldyBCaW5hcnlJc0luUGF0aENoZWNrKHN5c3RlbS5pc1dpbmRvd3MoKSA/ICdtdm4uYmF0JyA6ICdtdm4nKSk7XG5jaGVja3MucHVzaChuZXcgQmluYXJ5SXNJblBhdGhDaGVjayhzeXN0ZW0uaXNXaW5kb3dzKCkgPyAnYW50LmJhdCcgOiAnYW50JykpO1xuY2hlY2tzLnB1c2gobmV3IEJpbmFyeUlzSW5QYXRoQ2hlY2soc3lzdGVtLmlzV2luZG93cygpID8gJ2FkYi5leGUnIDogJ2FkYicpKTtcblxuLy8gQ2hlY2sgQW5kcm9pZCBTREtzXG5jbGFzcyBBbmRyb2lkU2RrRXhpc3RzIGV4dGVuZHMgRG9jdG9yQ2hlY2sge1xuICBjb25zdHJ1Y3RvciAoc2RrKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNkayA9IHNkaztcbiAgfVxuXG4gIGFzeW5jIGRpYWdub3NlICgpIHtcbiAgICBpZiAodHlwZW9mIHByb2Nlc3MuZW52LkFORFJPSURfSE9NRSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBub2soYCR7dGhpcy5zZGt9IGNvdWxkIG5vdCBiZSBmb3VuZCBiZWNhdXNlIEFORFJPSURfSE9NRSBpcyBOT1Qgc2V0IWApO1xuICAgIH1cbiAgICBsZXQgc2RrUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5BTkRST0lEX0hPTUUsIHBhdGguam9pbigncGxhdGZvcm1zJywgdGhpcy5zZGspKTtcbiAgICByZXR1cm4gYXdhaXQgZnMuZXhpc3RzKHNka1BhdGgpID8gb2soYCR7dGhpcy5zZGt9IHdhcyBmb3VuZCBhdDogJHtzZGtQYXRofWApIDpcbiAgICAgIG5vayhgJHt0aGlzLnNka30gY291bGQgTk9UIGJlIGZvdW5kIGF0ICcke3Nka1BhdGh9JyFgKTtcbiAgfVxuXG4gIGZpeCAoKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzLmVudi5BTkRST0lEX0hPTUUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gYE1hbnVhbGx5IGNvbmZpZ3VyZSAkeydBTkRST0lEX0hPTUUnLmJvbGR9LmA7XG4gICAgfVxuICAgIHJldHVybiBgTWFudWFsbHkgaW5zdGFsbCB0aGUgJHt0aGlzLnNkay5ib2xkfSBzZGsuYDtcbiAgfVxufVxuXG5jaGVja3MucHVzaChuZXcgQW5kcm9pZFNka0V4aXN0cygnYW5kcm9pZC0xNicpKTtcbmNoZWNrcy5wdXNoKG5ldyBBbmRyb2lkU2RrRXhpc3RzKCdhbmRyb2lkLTE5JykpO1xuXG5leHBvcnQgeyBCaW5hcnlJc0luUGF0aENoZWNrLCBBbmRyb2lkU2RrRXhpc3RzIH07XG5leHBvcnQgZGVmYXVsdCBjaGVja3M7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsSUFBSUEsTUFBTSxHQUFHLEVBQWI7O0FBR0EsTUFBTUMsbUJBQU4sU0FBa0NDLG1CQUFsQyxDQUE4QztFQUM1Q0MsV0FBVyxDQUFFQyxNQUFGLEVBQVU7SUFDbkI7SUFDQSxLQUFLQSxNQUFMLEdBQWNBLE1BQWQ7RUFDRDs7RUFFYSxNQUFSQyxRQUFRLEdBQUk7SUFDaEIsTUFBTUMsWUFBWSxHQUFHLE1BQU0sSUFBQUMsNEJBQUEsRUFBc0IsS0FBS0gsTUFBM0IsQ0FBM0I7O0lBQ0EsSUFBSSxDQUFDRSxZQUFMLEVBQW1CO01BQ2pCLE9BQU8sSUFBQUUsVUFBQSxFQUFLLEdBQUUsS0FBS0osTUFBTyx3QkFBdUJLLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxJQUFLLEVBQTNELENBQVA7SUFDRDs7SUFFRCxPQUFPLElBQUFDLFNBQUEsRUFBSSxHQUFFLEtBQUtSLE1BQU8saUJBQWdCRSxZQUFhLEVBQS9DLENBQVA7RUFDRDs7RUFFRE8sR0FBRyxHQUFJO0lBQ0wsT0FBUSx3QkFBdUIsS0FBS1QsTUFBTCxDQUFZVSxJQUFLLHlCQUF3QixPQUFPQSxJQUFLLEdBQXBGO0VBQ0Q7O0FBakIyQzs7O0FBb0I5Q2QsTUFBTSxDQUFDZSxJQUFQLENBQVksSUFBSWQsbUJBQUosQ0FBd0JlLHFCQUFBLENBQU9DLFNBQVAsS0FBcUIsU0FBckIsR0FBaUMsS0FBekQsQ0FBWjtBQUNBakIsTUFBTSxDQUFDZSxJQUFQLENBQVksSUFBSWQsbUJBQUosQ0FBd0JlLHFCQUFBLENBQU9DLFNBQVAsS0FBcUIsU0FBckIsR0FBaUMsS0FBekQsQ0FBWjtBQUNBakIsTUFBTSxDQUFDZSxJQUFQLENBQVksSUFBSWQsbUJBQUosQ0FBd0JlLHFCQUFBLENBQU9DLFNBQVAsS0FBcUIsU0FBckIsR0FBaUMsS0FBekQsQ0FBWjs7QUFHQSxNQUFNQyxnQkFBTixTQUErQmhCLG1CQUEvQixDQUEyQztFQUN6Q0MsV0FBVyxDQUFFZ0IsR0FBRixFQUFPO0lBQ2hCO0lBQ0EsS0FBS0EsR0FBTCxHQUFXQSxHQUFYO0VBQ0Q7O0VBRWEsTUFBUmQsUUFBUSxHQUFJO0lBQ2hCLElBQUksT0FBT0ksT0FBTyxDQUFDQyxHQUFSLENBQVlVLFlBQW5CLEtBQW9DLFdBQXhDLEVBQXFEO01BQ25ELE9BQU8sSUFBQVosVUFBQSxFQUFLLEdBQUUsS0FBS1csR0FBSSxzREFBaEIsQ0FBUDtJQUNEOztJQUNELElBQUlFLE9BQU8sR0FBR0MsYUFBQSxDQUFLQyxPQUFMLENBQWFkLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVSxZQUF6QixFQUF1Q0UsYUFBQSxDQUFLRSxJQUFMLENBQVUsV0FBVixFQUF1QixLQUFLTCxHQUE1QixDQUF2QyxDQUFkOztJQUNBLE9BQU8sT0FBTU0saUJBQUEsQ0FBR0MsTUFBSCxDQUFVTCxPQUFWLENBQU4sSUFBMkIsSUFBQVQsU0FBQSxFQUFJLEdBQUUsS0FBS08sR0FBSSxrQkFBaUJFLE9BQVEsRUFBeEMsQ0FBM0IsR0FDTCxJQUFBYixVQUFBLEVBQUssR0FBRSxLQUFLVyxHQUFJLDJCQUEwQkUsT0FBUSxJQUFsRCxDQURGO0VBRUQ7O0VBRURSLEdBQUcsR0FBSTtJQUNMLElBQUksT0FBT0osT0FBTyxDQUFDQyxHQUFSLENBQVlVLFlBQW5CLEtBQW9DLFdBQXhDLEVBQXFEO01BQ25ELE9BQVEsc0JBQXFCLGVBQWVOLElBQUssR0FBakQ7SUFDRDs7SUFDRCxPQUFRLHdCQUF1QixLQUFLSyxHQUFMLENBQVNMLElBQUssT0FBN0M7RUFDRDs7QUFwQndDOzs7QUF1QjNDZCxNQUFNLENBQUNlLElBQVAsQ0FBWSxJQUFJRyxnQkFBSixDQUFxQixZQUFyQixDQUFaO0FBQ0FsQixNQUFNLENBQUNlLElBQVAsQ0FBWSxJQUFJRyxnQkFBSixDQUFxQixZQUFyQixDQUFaO2VBR2VsQixNIn0=
;