diff --git a/packages/core/src/lib/ProcessManager.ts b/packages/core/src/lib/ProcessManager.ts index d4c1597d..9ddd692e 100644 --- a/packages/core/src/lib/ProcessManager.ts +++ b/packages/core/src/lib/ProcessManager.ts @@ -13,6 +13,7 @@ import type {Command, Optional} from './Types'; import info from './Console'; import cp from 'child_process'; import os from 'os'; +import utils from './Utils'; type Options = { msg?: string; @@ -66,7 +67,7 @@ class ProcessManager { if (options.msg) { info.lowLevel(options.msg); } - const str = [cmd, ...args].join(' '); + const str = utils.convertCLIArgsToReadableCommand([cmd, ...args]); this.nProc++; const proc = cp.spawn(cmd, args); proc.on('exit', code => { diff --git a/packages/core/src/lib/Utils.ts b/packages/core/src/lib/Utils.ts index a2d3fa33..0a5a3b66 100644 --- a/packages/core/src/lib/Utils.ts +++ b/packages/core/src/lib/Utils.ts @@ -2141,6 +2141,22 @@ function setChromiumBinary(config: MemLabConfig, chromiumBinary: string) { config.puppeteerConfig.executablePath = binaryPath; } +function convertToReadableArg(arg: string): string { + const startsWithBackslashAndQuote = arg.startsWith('\\"'); + const endsWithBackslashAndQuote = arg.endsWith('\\"'); + if (startsWithBackslashAndQuote && endsWithBackslashAndQuote) { + return `"${arg.substring(2, arg.length - 2)}"`; + } + if (/\s/.test(arg)) { + return `"${arg}"`; + } + return arg; +} + +function convertCLIArgsToReadableCommand(args: string[]): string { + return args.map(convertToReadableArg).join(' '); +} + export default { aggregateDominatorMetrics, applyToNodes, @@ -2150,6 +2166,7 @@ export default { checkSnapshots, checkUninstalledLibrary, closePuppeteer, + convertCLIArgsToReadableCommand, dumpSnapshot, equalOrMatch, extractClosureNodeInfo,