Export client logs for the active client as a part of the universal export

Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#

Introduce a command rto fetch debug data from the devices

Reviewed By: passy

Differential Revision: D40470838

fbshipit-source-id: 40a7ec66b1266ceff1b31b5b4f19b93765b78615
This commit is contained in:
Andrey Goncharov
2022-10-25 05:31:48 -07:00
committed by Facebook GitHub Bot
parent ef0d9fb77e
commit 2db9bccf75
4 changed files with 24 additions and 5 deletions

View File

@@ -63,7 +63,7 @@ import {
showOpenDialog,
startFileExport,
startLinkExport,
startLogsExport,
startFlipperLogsExport,
} from '../utils/exportData';
import {openDeeplinkDialog} from '../deeplink';
import {css} from '@emotion/css';
@@ -229,7 +229,7 @@ function ExtrasMenu() {
);
const startLogsExportTracked = useTrackedCallback(
'Logs export',
startLogsExport,
startFlipperLogsExport,
[],
);
const startLinkExportTracked = useTrackedCallback(

View File

@@ -605,13 +605,21 @@ export function canFileExport() {
return !!getRenderHostInstance().showSaveDialog;
}
export async function startLogsExport() {
export async function startFlipperLogsExport() {
const serializedLogs = exportLogs
.map((item) => JSON.stringify(item))
.join('\n');
await getRenderHostInstance().exportFile?.(serializedLogs);
}
export async function startClientLogsExport() {
const _clientLogs = await getRenderHostInstance().flipperServer.exec(
'fetch-debug-data',
);
// TODO: Save all log files
}
export async function exportEverythingEverywhereAllAtOnce(
store: MiddlewareAPI,
) {
@@ -619,10 +627,10 @@ export async function exportEverythingEverywhereAllAtOnce(
// TODO: Pack all files in a single archive
// Step 1: Export Flipper logs
await startLogsExport();
await startFlipperLogsExport();
// Step 2: Export device logs
// TODO: Implement me
await startClientLogsExport();
// Step 3: Export Flipper State
// TODO: Export all plugins automatically