Use setProcessState
Summary: `setProcessState` does some adjusting to PATH. This was only ever done for Electron. This change moves that functionality to FlipperServerImpl which is the one what orchestrates. By doing this, flipper server also benefits from getting these adjustments. Reviewed By: antonk52 Differential Revision: D46836659 fbshipit-source-id: f98291d320cf9b7f3808223af8745c068b1318ce
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b4f0657f4f
commit
165a989cc6
@@ -26,6 +26,7 @@ import {
|
||||
FlipperServerExecOptions,
|
||||
DeviceDebugData,
|
||||
CertificateExchangeMedium,
|
||||
Settings,
|
||||
} from 'flipper-common';
|
||||
import {ServerDevice} from './devices/ServerDevice';
|
||||
import {Base64} from 'js-base64';
|
||||
@@ -56,6 +57,7 @@ import {mkdirp} from 'fs-extra';
|
||||
import {flipperDataFolder, flipperSettingsFolder} from './utils/paths';
|
||||
import {DebuggableDevice} from './devices/DebuggableDevice';
|
||||
import {jfUpload} from './fb-stubs/jf';
|
||||
import path from 'path';
|
||||
|
||||
const {access, copyFile, mkdir, unlink, stat, readlink, readFile, writeFile} =
|
||||
promises;
|
||||
@@ -68,6 +70,25 @@ function isHandledStartupError(e: Error) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function setProcessState(settings: Settings) {
|
||||
const androidHome = settings.androidHome;
|
||||
const idbPath = settings.idbPath;
|
||||
|
||||
if (!process.env.ANDROID_HOME && !process.env.ANDROID_SDK_ROOT) {
|
||||
process.env.ANDROID_HOME = androidHome;
|
||||
process.env.ANDROID_SDK_ROOT = androidHome;
|
||||
}
|
||||
|
||||
// emulator/emulator is more reliable than tools/emulator, so prefer it if
|
||||
// it exists
|
||||
process.env.PATH =
|
||||
['emulator', 'tools', 'platform-tools']
|
||||
.map((directory) => path.resolve(androidHome, directory))
|
||||
.join(':') +
|
||||
`:${idbPath}` +
|
||||
`:${process.env.PATH}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* FlipperServer takes care of all incoming device & client connections.
|
||||
* It will set up managers per device type, and create the incoming
|
||||
@@ -99,6 +120,8 @@ export class FlipperServerImpl implements FlipperServer {
|
||||
console.log(
|
||||
'Loaded flipper config, paths: ' + JSON.stringify(config.paths, null, 2),
|
||||
);
|
||||
|
||||
setProcessState(config.settings);
|
||||
const server = (this.server = new ServerController(this));
|
||||
this.keytarManager = new KeytarManager(keytarModule);
|
||||
// given flipper-dump, it might make more sense to have the plugin command
|
||||
|
||||
Reference in New Issue
Block a user