"use strict";function _typeof(obj) {"@babel/helpers - typeof";return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {return typeof obj;} : function (obj) {return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;}, _typeof(obj);}Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _shelljs = _interopRequireDefault(require("shelljs"));
var _path = _interopRequireDefault(require("path"));

var _exec = require("../systemManager/exec");
var _logger = require("../systemManager/logger");
var _base = _interopRequireDefault(require("./base"));
var _fileutils = require("../systemManager/fileutils");
var _config = _interopRequireDefault(require("./config"));
var _constants = require("../constants");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { "default": obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);Object.defineProperty(Constructor, "prototype", { writable: false });return Constructor;}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}Object.defineProperty(subClass, "prototype", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), writable: false });if (superClass) _setPrototypeOf(subClass, superClass);}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _createSuper(Derived) {var hasNativeReflectConstruct = _isNativeReflectConstruct();return function _createSuperInternal() {var Super = _getPrototypeOf(Derived),result;if (hasNativeReflectConstruct) {var NewTarget = _getPrototypeOf(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return _possibleConstructorReturn(this, result);};}function _possibleConstructorReturn(self, call) {if (call && (_typeof(call) === "object" || typeof call === "function")) {return call;} else if (call !== void 0) {throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));return true;} catch (e) {return false;}}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}var






LinuxPlatformSetup = /*#__PURE__*/function (_BasePlatformSetup) {_inherits(LinuxPlatformSetup, _BasePlatformSetup);var _super = _createSuper(LinuxPlatformSetup);
  function LinuxPlatformSetup(c) {_classCallCheck(this, LinuxPlatformSetup);return _super.call(this,
    'linux', c);
  }_createClass(LinuxPlatformSetup, [{ key: "installSoftware", value: function () {var _installSoftware = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(

      function _callee(software) {return regeneratorRuntime.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:if (!
                (0, _exec.commandExistsSync)('apt-get')) {_context.next = 3;break;}_context.next = 3;return (
                  _shelljs["default"].exec("apt-get -qq update && apt-get install ".concat(
                  software, " -y > /dev/null")));case 3:return _context.abrupt("return",



                true);case 4:case "end":return _context.stop();}}}, _callee);}));function installSoftware(_x) {return _installSoftware.apply(this, arguments);}return installSoftware;}() }, { key: "installPrereqs", value: function () {var _installPrereqs = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(


      function _callee2() {return regeneratorRuntime.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:if (
                this.availableDownloader) {_context2.next = 5;break;}
                (0, _logger.logInfo)(
                "You don't have wget or curl installed. We'll install wget for you");_context2.next = 4;return (

                  this.installSoftware('wget'));case 4:
                this.availableDownloader = 'wget';case 5:if (


                (0, _exec.commandExistsSync)('unzip')) {_context2.next = 9;break;}
                (0, _logger.logInfo)(
                "You don't have unzip installed. We'll install it for you");_context2.next = 9;return (

                  this.installSoftware('unzip'));case 9:if (


                (0, _exec.commandExistsSync)('javac')) {_context2.next = 13;break;}
                (0, _logger.logInfo)(
                "You don't have java installed. We'll install it for you");_context2.next = 13;return (

                  this.installSoftware('openjdk-8-jdk'));case 13:return _context2.abrupt("return",


                true);case 14:case "end":return _context2.stop();}}}, _callee2, this);}));function installPrereqs() {return _installPrereqs.apply(this, arguments);}return installPrereqs;}() }, { key: "postInstall", value: function () {var _postInstall = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(


      function _callee3(sdk) {var location, ANDROID_SDK;return regeneratorRuntime.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:if (!(
                sdk === 'android')) {_context3.next = 11;break;}
                location = _config["default"].android.location;
                (0, _logger.logDebug)("Updating ".concat(
                this.globalConfigPath, " with ").concat(JSON.stringify({
                  androidSdk: location })));_context3.next = 5;return (


                  (0, _fileutils.updateConfigFile)(
                  { androidSdk: location },
                  this.globalConfigPath));case 5:

                // @todo find a more elegant way to update this
                this.c.files.workspace.config.sdks.ANDROID_SDK = location;

                ANDROID_SDK =
                this.c.files.workspace.config.sdks.ANDROID_SDK;
                this.c.cli[_constants.CLI_ANDROID_EMULATOR] = (0, _fileutils.getRealPath)(
                this.c,
                _path["default"].join(ANDROID_SDK, 'emulator/emulator'));

                this.c.cli[_constants.CLI_ANDROID_ADB] = (0, _fileutils.getRealPath)(
                this.c,
                _path["default"].join(ANDROID_SDK, 'platform-tools/adb'));

                this.c.cli[_constants.CLI_ANDROID_AVDMANAGER] = (0, _fileutils.getRealPath)(
                this.c,
                _path["default"].join(ANDROID_SDK, 'tools/bin/avdmanager'));

                this.c.cli[_constants.CLI_ANDROID_SDKMANAGER] = (0, _fileutils.getRealPath)(
                this.c,
                _path["default"].join(ANDROID_SDK, 'tools/bin/sdkmanager'));case 11:case "end":return _context3.stop();}}}, _callee3, this);}));function postInstall(_x2) {return _postInstall.apply(this, arguments);}return postInstall;}() }]);return LinuxPlatformSetup;}(_base["default"]);var _default =





LinuxPlatformSetup;exports["default"] = _default;
//# sourceMappingURL=linux.js.map