Remove global access to adb client and idb config
Summary: Idb and adb sholuld not really be accessed out side of Adnroid and iOS device managers Reviewed By: lawrencelomax Differential Revision: D33915162 fbshipit-source-id: 0d1bb028b9a53254cf5b0ce6289ae76339c5a254
This commit is contained in:
committed by
Facebook GitHub Bot
parent
51ef1810b2
commit
c7492a83c7
@@ -46,8 +46,7 @@ import {promises} from 'fs';
|
||||
// Electron 11 runs on Node 12 which does not support fs.promises.rm
|
||||
import rm from 'rimraf';
|
||||
import assert from 'assert';
|
||||
import {setAdbClient} from './devices/android/adbClient';
|
||||
import {setIdbConfig} from './devices/ios/idbConfig';
|
||||
import {initializeAdbClient} from './devices/android/adbClient';
|
||||
import {assertNotNull} from './comms/Utilities';
|
||||
|
||||
const {access, copyFile, mkdir, unlink, stat, readlink, readFile, writeFile} =
|
||||
@@ -163,7 +162,7 @@ export class FlipperServerImpl implements FlipperServer {
|
||||
const asyncDeviceListenersPromises: Array<Promise<void>> = [];
|
||||
if (this.config.settings.enableAndroid) {
|
||||
asyncDeviceListenersPromises.push(
|
||||
setAdbClient(this.config.settings)
|
||||
initializeAdbClient(this.config.settings)
|
||||
.then((adbClient) => {
|
||||
if (!adbClient) {
|
||||
return;
|
||||
@@ -180,8 +179,7 @@ export class FlipperServerImpl implements FlipperServer {
|
||||
);
|
||||
}
|
||||
if (this.config.settings.enableIOS) {
|
||||
const idbConfig = setIdbConfig(this.config.settings);
|
||||
this.ios = new IOSDeviceManager(this, idbConfig);
|
||||
this.ios = new IOSDeviceManager(this, this.config.settings);
|
||||
asyncDeviceListenersPromises.push(
|
||||
this.ios.watchIOSDevices().catch((e) => {
|
||||
console.error(
|
||||
|
||||
@@ -13,20 +13,14 @@ import adbConfig from './adbConfig';
|
||||
import adbkit, {Client} from 'adbkit';
|
||||
import path from 'path';
|
||||
|
||||
let instance: Client | undefined;
|
||||
|
||||
type Config = {
|
||||
androidHome: string;
|
||||
};
|
||||
|
||||
export function getAdbClient(): Client | undefined {
|
||||
return instance;
|
||||
}
|
||||
|
||||
export async function setAdbClient(
|
||||
export async function initializeAdbClient(
|
||||
config: Config,
|
||||
): Promise<Client | undefined> {
|
||||
instance = await reportPlatformFailures(
|
||||
): Promise<Client | void> {
|
||||
const adbClient = await reportPlatformFailures(
|
||||
createClient(config),
|
||||
'createADBClient',
|
||||
).catch((e) => {
|
||||
@@ -34,9 +28,8 @@ export async function setAdbClient(
|
||||
'Failed to initialize ADB. Please disable Android support in settings, or configure a correct path.',
|
||||
e,
|
||||
);
|
||||
return undefined;
|
||||
});
|
||||
return instance;
|
||||
return adbClient;
|
||||
}
|
||||
|
||||
/* Adbkit will attempt to start the adb server if it's not already running,
|
||||
|
||||
@@ -7,9 +7,8 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {IdbConfig} from './idbConfig';
|
||||
import CertificateProvider from '../../utils/CertificateProvider';
|
||||
import iosUtil from './iOSContainerUtility';
|
||||
import iosUtil, {IdbConfig} from './iOSContainerUtility';
|
||||
import fs from 'fs-extra';
|
||||
import {promisify} from 'util';
|
||||
import tmp, {DirOptions} from 'tmp';
|
||||
|
||||
@@ -19,6 +19,11 @@ import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
const exec = promisify(child_process.exec);
|
||||
|
||||
export type IdbConfig = {
|
||||
idbPath: string;
|
||||
enablePhysicalIOS: boolean;
|
||||
};
|
||||
|
||||
// Use debug to get helpful logs when idb fails
|
||||
const idbLogLevel = 'DEBUG';
|
||||
const operationPrefix = 'iosContainerUtility';
|
||||
|
||||
@@ -12,7 +12,7 @@ import type {IOSDeviceParams} from 'flipper-common';
|
||||
import path from 'path';
|
||||
import childProcess from 'child_process';
|
||||
import {exec} from 'promisify-child-process';
|
||||
import iosUtil from './iOSContainerUtility';
|
||||
import iosUtil, {IdbConfig} from './iOSContainerUtility';
|
||||
import IOSDevice from './IOSDevice';
|
||||
import {
|
||||
ERR_NO_IDB_OR_XCODE_AVAILABLE,
|
||||
@@ -22,7 +22,6 @@ import {
|
||||
} from './IOSBridge';
|
||||
import {FlipperServerImpl} from '../../FlipperServerImpl';
|
||||
import {getFlipperServerConfig} from '../../FlipperServerConfig';
|
||||
import {IdbConfig} from './idbConfig';
|
||||
import iOSCertificateProvider from './iOSCertificateProvider';
|
||||
|
||||
export class IOSDeviceManager {
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
export type IdbConfig = {
|
||||
idbPath: string;
|
||||
enablePhysicalIOS: boolean;
|
||||
};
|
||||
|
||||
let idbConfig: IdbConfig | undefined;
|
||||
|
||||
export const getIdbConfig = () => idbConfig;
|
||||
|
||||
export const setIdbConfig = (newIdbConfig: IdbConfig) => {
|
||||
idbConfig = newIdbConfig;
|
||||
return idbConfig;
|
||||
};
|
||||
Reference in New Issue
Block a user