/** * Copyright 2018-present Facebook. * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * @format */ const path = require('path'); const os = require('os'); const fs = require('fs'); module.exports = function(argv) { if (!process.env.ANDROID_HOME) { process.env.ANDROID_HOME = '/opt/android_sdk'; } // emulator/emulator is more reliable than tools/emulator, so prefer it if // it exists process.env.PATH = ['emulator', 'tools', 'platform-tools'] .map(directory => `${process.env.ANDROID_HOME}/${directory}`) .join(':') + `:${process.env.PATH}`; // ensure .flipper folder and config exist const flipperDir = path.join(os.homedir(), '.flipper'); if (!fs.existsSync(flipperDir)) { fs.mkdirSync(flipperDir); } const configPath = path.join(flipperDir, 'config.json'); let config = { pluginPaths: [], disabledPlugins: [], lastWindowPosition: {}, }; try { config = { ...config, ...JSON.parse(fs.readFileSync(configPath)), }; } catch (e) { // file not readable or not parsable, overwrite it with the new config fs.writeFileSync(configPath, JSON.stringify(config)); } // Non-persistent CLI arguments. config = { ...config, updaterEnabled: argv.updater, launcherMsg: argv.launcherMsg, }; return {config, configPath, flipperDir}; };