rea/tests/fixtures/captureGhidraLaunch.mjs

40 lines
1.5 KiB
JavaScript
Executable File

#!/usr/bin/env node
import { readFile, stat, writeFile } from "node:fs/promises";
import { dirname, join } from "node:path";
const arguments_ = process.argv.slice(2);
const descriptorPath = arguments_.at(-1);
if (descriptorPath === undefined) process.exit(64);
const descriptor = JSON.parse(await readFile(descriptorPath, "utf8"));
const runtimeRoot = dirname(descriptorPath);
await writeFile(
join(runtimeRoot, "launch-capture.json"),
`${JSON.stringify({
arguments: arguments_,
environment: {
HOME: process.env.HOME,
USERPROFILE: process.env.USERPROFILE,
TMPDIR: process.env.TMPDIR,
TEMP: process.env.TEMP,
TMP: process.env.TMP,
XDG_CACHE_HOME: process.env.XDG_CACHE_HOME,
XDG_CONFIG_HOME: process.env.XDG_CONFIG_HOME,
XDG_DATA_HOME: process.env.XDG_DATA_HOME,
GHIDRA_HEADLESS_MAXMEM: process.env.GHIDRA_HEADLESS_MAXMEM,
GHIDRA_HEADLESS_JAVA_OPTIONS: process.env.GHIDRA_HEADLESS_JAVA_OPTIONS,
GHIDRA_JAVA_OPTIONS: process.env.GHIDRA_JAVA_OPTIONS,
JAVA_TOOL_OPTIONS: process.env.JAVA_TOOL_OPTIONS,
JDK_JAVA_OPTIONS: process.env.JDK_JAVA_OPTIONS,
_JAVA_OPTIONS: process.env._JAVA_OPTIONS,
JAVA_HOME: process.env.JAVA_HOME,
PATH: process.env.PATH,
REA_PROCESS_RUN_ID: process.env.REA_PROCESS_RUN_ID,
},
descriptor_mode: (await stat(descriptorPath)).mode & 0o777,
descriptor_has_token: typeof descriptor.token === "string",
})}\n`,
{ mode: 0o600 },
);
setInterval(() => undefined, 1_000);